aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorjohannst <johannst@users.noreply.github.com>2024-12-20 22:36:06 +0000
committerjohannst <johannst@users.noreply.github.com>2024-12-20 22:36:06 +0000
commit7e758f4d684199c90ec1bb9107908e506bf736cf (patch)
tree8f3eeea9621197f92420ae7d81d98644134a789a
parentb5935c796ab0b2c478b4480a0dfdacb8e0dfe40e (diff)
downloadjuicebox-asm-gh-pages.tar.gz
juicebox-asm-gh-pages.zip
deploy: 6cc2331c8ff8e7372cd6e9a339250a9d8b58a547gh-pages
-rw-r--r--juicebox_asm/index.html2
-rw-r--r--juicebox_asm/struct.Asm.html13
-rw-r--r--juicebox_asm/struct.Runtime.html6
-rw-r--r--search-index.js4
-rw-r--r--search.desc/juicebox_asm/juicebox_asm-desc-0-.js2
-rw-r--r--src-files.js4
-rw-r--r--src/juicebox_asm/asm.rs.html28
-rw-r--r--src/juicebox_asm/disasm.rs.html103
-rw-r--r--src/juicebox_asm/lib.rs.html4
-rw-r--r--src/juicebox_asm/rt.rs.html78
10 files changed, 154 insertions, 90 deletions
diff --git a/juicebox_asm/index.html b/juicebox_asm/index.html
index ae482cb..0009a33 100644
--- a/juicebox_asm/index.html
+++ b/juicebox_asm/index.html
@@ -1,4 +1,4 @@
-<!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="A simple `x64` jit assembler with a minimal runtime to execute emitted code for fun."><title>juicebox_asm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../juicebox_asm/index.html">juicebox_<wbr>asm</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#modules">Crate Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>juicebox_asm</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/juicebox_asm/lib.rs.html#1-90">source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A simple <code>x64</code> jit assembler with a minimal runtime to execute emitted code for fun.</p>
+<!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="A simple `x64` jit assembler with a minimal runtime to execute emitted code for fun."><title>juicebox_asm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../juicebox_asm/index.html">juicebox_<wbr>asm</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#modules">Crate Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>juicebox_asm</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/juicebox_asm/lib.rs.html#1-91">source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A simple <code>x64</code> jit assembler with a minimal runtime to execute emitted code for fun.</p>
<p>The following is an fibonacci example implementation.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>juicebox_asm::{Asm, Reg64, Imm64, Label};
diff --git a/juicebox_asm/struct.Asm.html b/juicebox_asm/struct.Asm.html
index 19579f8..9f7c7e8 100644
--- a/juicebox_asm/struct.Asm.html
+++ b/juicebox_asm/struct.Asm.html
@@ -1,7 +1,14 @@
-<!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="`x64` jit assembler."><title>Asm in juicebox_asm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../juicebox_asm/index.html">juicebox_<wbr>asm</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Asm</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.bind" title="bind">bind</a></li><li><a href="#method.into_code" title="into_code">into_code</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.nop" title="nop">nop</a></li><li><a href="#method.ret" title="ret">ret</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Add%3CMem16,+Imm16%3E-for-Asm" title="Add&#60;Mem16, Imm16&#62;">Add&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Add%3CMem16,+Imm8%3E-for-Asm" title="Add&#60;Mem16, Imm8&#62;">Add&#60;Mem16, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem16,+Reg16%3E-for-Asm" title="Add&#60;Mem16, Reg16&#62;">Add&#60;Mem16, Reg16&#62;</a></li><li><a href="#impl-Add%3CMem32,+Imm8%3E-for-Asm" title="Add&#60;Mem32, Imm8&#62;">Add&#60;Mem32, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem64,+Imm8%3E-for-Asm" title="Add&#60;Mem64, Imm8&#62;">Add&#60;Mem64, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem64,+Reg64%3E-for-Asm" title="Add&#60;Mem64, Reg64&#62;">Add&#60;Mem64, Reg64&#62;</a></li><li><a href="#impl-Add%3CMem8,+Imm8%3E-for-Asm" title="Add&#60;Mem8, Imm8&#62;">Add&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Add%3CReg32,+Reg32%3E-for-Asm" title="Add&#60;Reg32, Reg32&#62;">Add&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Add%3CReg64,+Mem64%3E-for-Asm" title="Add&#60;Reg64, Mem64&#62;">Add&#60;Reg64, Mem64&#62;</a></li><li><a href="#impl-Add%3CReg64,+Reg64%3E-for-Asm" title="Add&#60;Reg64, Reg64&#62;">Add&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Call%3CReg64%3E-for-Asm" title="Call&#60;Reg64&#62;">Call&#60;Reg64&#62;</a></li><li><a href="#impl-Cmovnz%3CReg64,+Reg64%3E-for-Asm" title="Cmovnz&#60;Reg64, Reg64&#62;">Cmovnz&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Cmovz%3CReg64,+Reg64%3E-for-Asm" title="Cmovz&#60;Reg64, Reg64&#62;">Cmovz&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Cmp%3CMem16,+Imm16%3E-for-Asm" title="Cmp&#60;Mem16, Imm16&#62;">Cmp&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Cmp%3CMem8,+Imm8%3E-for-Asm" title="Cmp&#60;Mem8, Imm8&#62;">Cmp&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Cmp%3CReg64,+Reg64%3E-for-Asm" title="Cmp&#60;Reg64, Reg64&#62;">Cmp&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Dec%3CMem16%3E-for-Asm" title="Dec&#60;Mem16&#62;">Dec&#60;Mem16&#62;</a></li><li><a href="#impl-Dec%3CMem32%3E-for-Asm" title="Dec&#60;Mem32&#62;">Dec&#60;Mem32&#62;</a></li><li><a href="#impl-Dec%3CMem64%3E-for-Asm" title="Dec&#60;Mem64&#62;">Dec&#60;Mem64&#62;</a></li><li><a href="#impl-Dec%3CMem8%3E-for-Asm" title="Dec&#60;Mem8&#62;">Dec&#60;Mem8&#62;</a></li><li><a href="#impl-Dec%3CReg32%3E-for-Asm" title="Dec&#60;Reg32&#62;">Dec&#60;Reg32&#62;</a></li><li><a href="#impl-Dec%3CReg64%3E-for-Asm" title="Dec&#60;Reg64&#62;">Dec&#60;Reg64&#62;</a></li><li><a href="#impl-Inc%3CMem16%3E-for-Asm" title="Inc&#60;Mem16&#62;">Inc&#60;Mem16&#62;</a></li><li><a href="#impl-Inc%3CMem32%3E-for-Asm" title="Inc&#60;Mem32&#62;">Inc&#60;Mem32&#62;</a></li><li><a href="#impl-Inc%3CMem64%3E-for-Asm" title="Inc&#60;Mem64&#62;">Inc&#60;Mem64&#62;</a></li><li><a href="#impl-Inc%3CMem8%3E-for-Asm" title="Inc&#60;Mem8&#62;">Inc&#60;Mem8&#62;</a></li><li><a href="#impl-Inc%3CReg32%3E-for-Asm" title="Inc&#60;Reg32&#62;">Inc&#60;Reg32&#62;</a></li><li><a href="#impl-Inc%3CReg64%3E-for-Asm" title="Inc&#60;Reg64&#62;">Inc&#60;Reg64&#62;</a></li><li><a href="#impl-Jmp%3C%26mut+Label%3E-for-Asm" title="Jmp&#60;&#38;mut Label&#62;">Jmp&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Jnz%3C%26mut+Label%3E-for-Asm" title="Jnz&#60;&#38;mut Label&#62;">Jnz&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Jz%3C%26mut+Label%3E-for-Asm" title="Jz&#60;&#38;mut Label&#62;">Jz&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Mov%3CMem16,+Imm16%3E-for-Asm" title="Mov&#60;Mem16, Imm16&#62;">Mov&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Mov%3CMem16,+Reg16%3E-for-Asm" title="Mov&#60;Mem16, Reg16&#62;">Mov&#60;Mem16, Reg16&#62;</a></li><li><a href="#impl-Mov%3CMem32,+Reg32%3E-for-Asm" title="Mov&#60;Mem32, Reg32&#62;">Mov&#60;Mem32, Reg32&#62;</a></li><li><a href="#impl-Mov%3CMem64,+Reg64%3E-for-Asm" title="Mov&#60;Mem64, Reg64&#62;">Mov&#60;Mem64, Reg64&#62;</a></li><li><a href="#impl-Mov%3CMem8,+Reg8%3E-for-Asm" title="Mov&#60;Mem8, Reg8&#62;">Mov&#60;Mem8, Reg8&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Imm16%3E-for-Asm" title="Mov&#60;Reg16, Imm16&#62;">Mov&#60;Reg16, Imm16&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Mem16%3E-for-Asm" title="Mov&#60;Reg16, Mem16&#62;">Mov&#60;Reg16, Mem16&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Reg16%3E-for-Asm" title="Mov&#60;Reg16, Reg16&#62;">Mov&#60;Reg16, Reg16&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Imm32%3E-for-Asm" title="Mov&#60;Reg32, Imm32&#62;">Mov&#60;Reg32, Imm32&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Mem32%3E-for-Asm" title="Mov&#60;Reg32, Mem32&#62;">Mov&#60;Reg32, Mem32&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Reg32%3E-for-Asm" title="Mov&#60;Reg32, Reg32&#62;">Mov&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Imm64%3E-for-Asm" title="Mov&#60;Reg64, Imm64&#62;">Mov&#60;Reg64, Imm64&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Mem64%3E-for-Asm" title="Mov&#60;Reg64, Mem64&#62;">Mov&#60;Reg64, Mem64&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Reg64%3E-for-Asm" title="Mov&#60;Reg64, Reg64&#62;">Mov&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Imm8%3E-for-Asm" title="Mov&#60;Reg8, Imm8&#62;">Mov&#60;Reg8, Imm8&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Mem8%3E-for-Asm" title="Mov&#60;Reg8, Mem8&#62;">Mov&#60;Reg8, Mem8&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Reg8%3E-for-Asm" title="Mov&#60;Reg8, Reg8&#62;">Mov&#60;Reg8, Reg8&#62;</a></li><li><a href="#impl-Pop%3CReg16%3E-for-Asm" title="Pop&#60;Reg16&#62;">Pop&#60;Reg16&#62;</a></li><li><a href="#impl-Pop%3CReg64%3E-for-Asm" title="Pop&#60;Reg64&#62;">Pop&#60;Reg64&#62;</a></li><li><a href="#impl-Push%3CReg16%3E-for-Asm" title="Push&#60;Reg16&#62;">Push&#60;Reg16&#62;</a></li><li><a href="#impl-Push%3CReg64%3E-for-Asm" title="Push&#60;Reg64&#62;">Push&#60;Reg64&#62;</a></li><li><a href="#impl-Sub%3CMem8,+Imm8%3E-for-Asm" title="Sub&#60;Mem8, Imm8&#62;">Sub&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Sub%3CReg64,+Reg64%3E-for-Asm" title="Sub&#60;Reg64, Reg64&#62;">Sub&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Test%3CMem16,+Imm16%3E-for-Asm" title="Test&#60;Mem16, Imm16&#62;">Test&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Test%3CReg32,+Reg32%3E-for-Asm" title="Test&#60;Reg32, Reg32&#62;">Test&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Test%3CReg64,+Reg64%3E-for-Asm" title="Test&#60;Reg64, Reg64&#62;">Test&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Xor%3CReg64,+Reg64%3E-for-Asm" title="Xor&#60;Reg64, Reg64&#62;">Xor&#60;Reg64, Reg64&#62;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Asm" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Asm" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Asm" title="Send">Send</a></li><li><a href="#impl-Sync-for-Asm" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Asm" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Asm" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate juicebox_<wbr>asm</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">juicebox_asm</a></span><h1>Struct <span class="struct">Asm</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/juicebox_asm/asm.rs.html#28-30">source</a> </span></div><pre class="rust item-decl"><code>pub struct Asm { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>x64</code> jit assembler.</p>
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#32-325">source</a><a href="#impl-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#34-38">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h4></section></summary><div class="docblock"><p>Create a new <code>x64</code> jit assembler.</p>
+<!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="`x64` jit assembler."><title>Asm in juicebox_asm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../juicebox_asm/index.html">juicebox_<wbr>asm</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Asm</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.bind" title="bind">bind</a></li><li><a href="#method.disasm" title="disasm">disasm</a></li><li><a href="#method.into_code" title="into_code">into_code</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.nop" title="nop">nop</a></li><li><a href="#method.ret" title="ret">ret</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Add%3CMem16,+Imm16%3E-for-Asm" title="Add&#60;Mem16, Imm16&#62;">Add&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Add%3CMem16,+Imm8%3E-for-Asm" title="Add&#60;Mem16, Imm8&#62;">Add&#60;Mem16, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem16,+Reg16%3E-for-Asm" title="Add&#60;Mem16, Reg16&#62;">Add&#60;Mem16, Reg16&#62;</a></li><li><a href="#impl-Add%3CMem32,+Imm8%3E-for-Asm" title="Add&#60;Mem32, Imm8&#62;">Add&#60;Mem32, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem64,+Imm8%3E-for-Asm" title="Add&#60;Mem64, Imm8&#62;">Add&#60;Mem64, Imm8&#62;</a></li><li><a href="#impl-Add%3CMem64,+Reg64%3E-for-Asm" title="Add&#60;Mem64, Reg64&#62;">Add&#60;Mem64, Reg64&#62;</a></li><li><a href="#impl-Add%3CMem8,+Imm8%3E-for-Asm" title="Add&#60;Mem8, Imm8&#62;">Add&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Add%3CReg32,+Reg32%3E-for-Asm" title="Add&#60;Reg32, Reg32&#62;">Add&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Add%3CReg64,+Mem64%3E-for-Asm" title="Add&#60;Reg64, Mem64&#62;">Add&#60;Reg64, Mem64&#62;</a></li><li><a href="#impl-Add%3CReg64,+Reg64%3E-for-Asm" title="Add&#60;Reg64, Reg64&#62;">Add&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Call%3CReg64%3E-for-Asm" title="Call&#60;Reg64&#62;">Call&#60;Reg64&#62;</a></li><li><a href="#impl-Cmovnz%3CReg64,+Reg64%3E-for-Asm" title="Cmovnz&#60;Reg64, Reg64&#62;">Cmovnz&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Cmovz%3CReg64,+Reg64%3E-for-Asm" title="Cmovz&#60;Reg64, Reg64&#62;">Cmovz&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Cmp%3CMem16,+Imm16%3E-for-Asm" title="Cmp&#60;Mem16, Imm16&#62;">Cmp&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Cmp%3CMem8,+Imm8%3E-for-Asm" title="Cmp&#60;Mem8, Imm8&#62;">Cmp&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Cmp%3CReg64,+Reg64%3E-for-Asm" title="Cmp&#60;Reg64, Reg64&#62;">Cmp&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Dec%3CMem16%3E-for-Asm" title="Dec&#60;Mem16&#62;">Dec&#60;Mem16&#62;</a></li><li><a href="#impl-Dec%3CMem32%3E-for-Asm" title="Dec&#60;Mem32&#62;">Dec&#60;Mem32&#62;</a></li><li><a href="#impl-Dec%3CMem64%3E-for-Asm" title="Dec&#60;Mem64&#62;">Dec&#60;Mem64&#62;</a></li><li><a href="#impl-Dec%3CMem8%3E-for-Asm" title="Dec&#60;Mem8&#62;">Dec&#60;Mem8&#62;</a></li><li><a href="#impl-Dec%3CReg32%3E-for-Asm" title="Dec&#60;Reg32&#62;">Dec&#60;Reg32&#62;</a></li><li><a href="#impl-Dec%3CReg64%3E-for-Asm" title="Dec&#60;Reg64&#62;">Dec&#60;Reg64&#62;</a></li><li><a href="#impl-Inc%3CMem16%3E-for-Asm" title="Inc&#60;Mem16&#62;">Inc&#60;Mem16&#62;</a></li><li><a href="#impl-Inc%3CMem32%3E-for-Asm" title="Inc&#60;Mem32&#62;">Inc&#60;Mem32&#62;</a></li><li><a href="#impl-Inc%3CMem64%3E-for-Asm" title="Inc&#60;Mem64&#62;">Inc&#60;Mem64&#62;</a></li><li><a href="#impl-Inc%3CMem8%3E-for-Asm" title="Inc&#60;Mem8&#62;">Inc&#60;Mem8&#62;</a></li><li><a href="#impl-Inc%3CReg32%3E-for-Asm" title="Inc&#60;Reg32&#62;">Inc&#60;Reg32&#62;</a></li><li><a href="#impl-Inc%3CReg64%3E-for-Asm" title="Inc&#60;Reg64&#62;">Inc&#60;Reg64&#62;</a></li><li><a href="#impl-Jmp%3C%26mut+Label%3E-for-Asm" title="Jmp&#60;&#38;mut Label&#62;">Jmp&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Jnz%3C%26mut+Label%3E-for-Asm" title="Jnz&#60;&#38;mut Label&#62;">Jnz&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Jz%3C%26mut+Label%3E-for-Asm" title="Jz&#60;&#38;mut Label&#62;">Jz&#60;&#38;mut Label&#62;</a></li><li><a href="#impl-Mov%3CMem16,+Imm16%3E-for-Asm" title="Mov&#60;Mem16, Imm16&#62;">Mov&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Mov%3CMem16,+Reg16%3E-for-Asm" title="Mov&#60;Mem16, Reg16&#62;">Mov&#60;Mem16, Reg16&#62;</a></li><li><a href="#impl-Mov%3CMem32,+Reg32%3E-for-Asm" title="Mov&#60;Mem32, Reg32&#62;">Mov&#60;Mem32, Reg32&#62;</a></li><li><a href="#impl-Mov%3CMem64,+Reg64%3E-for-Asm" title="Mov&#60;Mem64, Reg64&#62;">Mov&#60;Mem64, Reg64&#62;</a></li><li><a href="#impl-Mov%3CMem8,+Reg8%3E-for-Asm" title="Mov&#60;Mem8, Reg8&#62;">Mov&#60;Mem8, Reg8&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Imm16%3E-for-Asm" title="Mov&#60;Reg16, Imm16&#62;">Mov&#60;Reg16, Imm16&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Mem16%3E-for-Asm" title="Mov&#60;Reg16, Mem16&#62;">Mov&#60;Reg16, Mem16&#62;</a></li><li><a href="#impl-Mov%3CReg16,+Reg16%3E-for-Asm" title="Mov&#60;Reg16, Reg16&#62;">Mov&#60;Reg16, Reg16&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Imm32%3E-for-Asm" title="Mov&#60;Reg32, Imm32&#62;">Mov&#60;Reg32, Imm32&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Mem32%3E-for-Asm" title="Mov&#60;Reg32, Mem32&#62;">Mov&#60;Reg32, Mem32&#62;</a></li><li><a href="#impl-Mov%3CReg32,+Reg32%3E-for-Asm" title="Mov&#60;Reg32, Reg32&#62;">Mov&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Imm64%3E-for-Asm" title="Mov&#60;Reg64, Imm64&#62;">Mov&#60;Reg64, Imm64&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Mem64%3E-for-Asm" title="Mov&#60;Reg64, Mem64&#62;">Mov&#60;Reg64, Mem64&#62;</a></li><li><a href="#impl-Mov%3CReg64,+Reg64%3E-for-Asm" title="Mov&#60;Reg64, Reg64&#62;">Mov&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Imm8%3E-for-Asm" title="Mov&#60;Reg8, Imm8&#62;">Mov&#60;Reg8, Imm8&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Mem8%3E-for-Asm" title="Mov&#60;Reg8, Mem8&#62;">Mov&#60;Reg8, Mem8&#62;</a></li><li><a href="#impl-Mov%3CReg8,+Reg8%3E-for-Asm" title="Mov&#60;Reg8, Reg8&#62;">Mov&#60;Reg8, Reg8&#62;</a></li><li><a href="#impl-Pop%3CReg16%3E-for-Asm" title="Pop&#60;Reg16&#62;">Pop&#60;Reg16&#62;</a></li><li><a href="#impl-Pop%3CReg64%3E-for-Asm" title="Pop&#60;Reg64&#62;">Pop&#60;Reg64&#62;</a></li><li><a href="#impl-Push%3CReg16%3E-for-Asm" title="Push&#60;Reg16&#62;">Push&#60;Reg16&#62;</a></li><li><a href="#impl-Push%3CReg64%3E-for-Asm" title="Push&#60;Reg64&#62;">Push&#60;Reg64&#62;</a></li><li><a href="#impl-Sub%3CMem8,+Imm8%3E-for-Asm" title="Sub&#60;Mem8, Imm8&#62;">Sub&#60;Mem8, Imm8&#62;</a></li><li><a href="#impl-Sub%3CReg64,+Reg64%3E-for-Asm" title="Sub&#60;Reg64, Reg64&#62;">Sub&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Test%3CMem16,+Imm16%3E-for-Asm" title="Test&#60;Mem16, Imm16&#62;">Test&#60;Mem16, Imm16&#62;</a></li><li><a href="#impl-Test%3CReg32,+Reg32%3E-for-Asm" title="Test&#60;Reg32, Reg32&#62;">Test&#60;Reg32, Reg32&#62;</a></li><li><a href="#impl-Test%3CReg64,+Reg64%3E-for-Asm" title="Test&#60;Reg64, Reg64&#62;">Test&#60;Reg64, Reg64&#62;</a></li><li><a href="#impl-Xor%3CReg64,+Reg64%3E-for-Asm" title="Xor&#60;Reg64, Reg64&#62;">Xor&#60;Reg64, Reg64&#62;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Asm" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Asm" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Asm" title="Send">Send</a></li><li><a href="#impl-Sync-for-Asm" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Asm" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Asm" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate juicebox_<wbr>asm</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">juicebox_asm</a></span><h1>Struct <span class="struct">Asm</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/juicebox_asm/asm.rs.html#28-30">source</a> </span></div><pre class="rust item-decl"><code>pub struct Asm { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>x64</code> jit assembler.</p>
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#32-338">source</a><a href="#impl-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#34-38">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h4></section></summary><div class="docblock"><p>Create a new <code>x64</code> jit assembler.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_code" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#41-43">source</a><h4 class="code-header">pub fn <a href="#method.into_code" class="fn">into_code</a>(self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.83.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.u8.html">u8</a>&gt;</h4></section></summary><div class="docblock"><p>Consume the assembler and get the emitted code.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.bind" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#71-77">source</a><h4 class="code-header">pub fn <a href="#method.bind" class="fn">bind</a>(&amp;mut self, label: &amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>)</h4></section></summary><div class="docblock"><p>Bind the <a href="struct.Label.html" title="struct juicebox_asm::Label">Label</a> to the current location.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.disasm" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#54-56">source</a><h4 class="code-header">pub fn <a href="#method.disasm" class="fn">disasm</a>(&amp;self)</h4></section></summary><div class="docblock"><p>Disassemble the code currently added to the runtime, using
+<a href="https://nasm.us/index.php"><code>ndisasm</code></a> and print it to <em>stdout</em>. If
+<code>ndisasm</code> is not available on the system this prints a warning and
+becomes a nop.</p>
+<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
+<p>Panics if anything goes wrong with spawning, writing to or reading from
+the <code>ndisasm</code> child process.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.bind" class="method"><a class="src rightside" href="../src/juicebox_asm/asm.rs.html#84-90">source</a><h4 class="code-header">pub fn <a href="#method.bind" class="fn">bind</a>(&amp;mut self, label: &amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>)</h4></section></summary><div class="docblock"><p>Bind the <a href="struct.Label.html" title="struct juicebox_asm::Label">Label</a> to the current location.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Asm-1" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/nop.rs.html#3-8">source</a><a href="#impl-Asm-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.nop" class="method"><a class="src rightside" href="../src/juicebox_asm/insn/nop.rs.html#5-7">source</a><h4 class="code-header">pub fn <a href="#method.nop" class="fn">nop</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Emit a <a href="https://www.felixcloutier.com/x86/nop"><code>nop</code></a> instruction.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Asm-2" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/ret.rs.html#3-8">source</a><a href="#impl-Asm-2" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.ret" class="method"><a class="src rightside" href="../src/juicebox_asm/insn/ret.rs.html#5-7">source</a><h4 class="code-header">pub fn <a href="#method.ret" class="fn">ret</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Emit a <a href="https://www.felixcloutier.com/x86/ret"><code>ret</code></a> instruction.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem16,+Imm16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#58-62">source</a><a href="#impl-Add%3CMem16,+Imm16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-9" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#59-61">source</a><a href="#method.add-9" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem16,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#40-44">source</a><a href="#impl-Add%3CMem16,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-6" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#41-43">source</a><a href="#method.add-6" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem16,+Reg16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#16-20">source</a><a href="#impl-Add%3CMem16,+Reg16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#17-19">source</a><a href="#method.add-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem32,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#46-50">source</a><a href="#impl-Add%3CMem32,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-7" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#47-49">source</a><a href="#method.add-7" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem64,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#52-56">source</a><a href="#impl-Add%3CMem64,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-8" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#53-55">source</a><a href="#method.add-8" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#22-26">source</a><a href="#impl-Add%3CMem64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-3" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#23-25">source</a><a href="#method.add-3" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CMem8,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#34-38">source</a><a href="#impl-Add%3CMem8,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-5" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#35-37">source</a><a href="#method.add-5" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CReg32,+Reg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#4-8">source</a><a href="#impl-Add%3CReg32,+Reg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#5-7">source</a><a href="#method.add" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, op2: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CReg64,+Mem64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#28-32">source</a><a href="#impl-Add%3CReg64,+Mem64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-4" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#29-31">source</a><a href="#method.add-4" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Add%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#10-14">source</a><a href="#impl-Add%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Add.html" title="trait juicebox_asm::insn::Add">Add</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.add-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/add.rs.html#11-13">source</a><a href="#method.add-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Add.html#tymethod.add" class="fn">add</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit an add instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Call%3CReg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/call.rs.html#4-8">source</a><a href="#impl-Call%3CReg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Call.html" title="trait juicebox_asm::insn::Call">Call</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.call" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/call.rs.html#5-7">source</a><a href="#method.call" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Call.html#tymethod.call" class="fn">call</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a call instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Cmovnz%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmovnz.rs.html#4-8">source</a><a href="#impl-Cmovnz%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Cmovnz.html" title="trait juicebox_asm::insn::Cmovnz">Cmovnz</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmovnz" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmovnz.rs.html#5-7">source</a><a href="#method.cmovnz" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Cmovnz.html#tymethod.cmovnz" class="fn">cmovnz</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a (conditional) move if not zero instruction. <a href="insn/trait.Cmovnz.html#tymethod.cmovnz">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Cmovz%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmovz.rs.html#4-8">source</a><a href="#impl-Cmovz%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Cmovz.html" title="trait juicebox_asm::insn::Cmovz">Cmovz</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmovz" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmovz.rs.html#5-7">source</a><a href="#method.cmovz" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Cmovz.html#tymethod.cmovz" class="fn">cmovz</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a (conditional) move if zero instruction. <a href="insn/trait.Cmovz.html#tymethod.cmovz">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Cmp%3CMem16,+Imm16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#10-14">source</a><a href="#impl-Cmp%3CMem16,+Imm16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Cmp.html" title="trait juicebox_asm::insn::Cmp">Cmp</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#11-13">source</a><a href="#method.cmp-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Cmp.html#tymethod.cmp" class="fn">cmp</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>)</h4></section></summary><div class='docblock'>Emit a compare instruction. <a href="insn/trait.Cmp.html#tymethod.cmp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Cmp%3CMem8,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#4-8">source</a><a href="#impl-Cmp%3CMem8,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Cmp.html" title="trait juicebox_asm::insn::Cmp">Cmp</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#5-7">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Cmp.html#tymethod.cmp" class="fn">cmp</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit a compare instruction. <a href="insn/trait.Cmp.html#tymethod.cmp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Cmp%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#16-20">source</a><a href="#impl-Cmp%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Cmp.html" title="trait juicebox_asm::insn::Cmp">Cmp</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/cmp.rs.html#17-19">source</a><a href="#method.cmp-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Cmp.html#tymethod.cmp" class="fn">cmp</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a compare instruction. <a href="insn/trait.Cmp.html#tymethod.cmp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CMem16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#22-26">source</a><a href="#impl-Dec%3CMem16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec-3" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#23-25">source</a><a href="#method.dec-3" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CMem32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#28-32">source</a><a href="#impl-Dec%3CMem32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec-4" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#29-31">source</a><a href="#method.dec-4" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CMem64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#34-38">source</a><a href="#impl-Dec%3CMem64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec-5" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#35-37">source</a><a href="#method.dec-5" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CMem8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#16-20">source</a><a href="#impl-Dec%3CMem8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#17-19">source</a><a href="#method.dec-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CReg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#10-14">source</a><a href="#impl-Dec%3CReg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#11-13">source</a><a href="#method.dec-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Dec%3CReg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#4-8">source</a><a href="#impl-Dec%3CReg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Dec.html" title="trait juicebox_asm::insn::Dec">Dec</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.dec" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/dec.rs.html#5-7">source</a><a href="#method.dec" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Dec.html#tymethod.dec" class="fn">dec</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a decrement instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CMem16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#22-26">source</a><a href="#impl-Inc%3CMem16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc-3" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#23-25">source</a><a href="#method.inc-3" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CMem32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#28-32">source</a><a href="#impl-Inc%3CMem32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc-4" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#29-31">source</a><a href="#method.inc-4" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CMem64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#34-38">source</a><a href="#impl-Inc%3CMem64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc-5" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#35-37">source</a><a href="#method.inc-5" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CMem8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#16-20">source</a><a href="#impl-Inc%3CMem8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#17-19">source</a><a href="#method.inc-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CReg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#10-14">source</a><a href="#impl-Inc%3CReg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#11-13">source</a><a href="#method.inc-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Inc%3CReg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#4-8">source</a><a href="#impl-Inc%3CReg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Inc.html" title="trait juicebox_asm::insn::Inc">Inc</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inc" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/inc.rs.html#5-7">source</a><a href="#method.inc" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Inc.html#tymethod.inc" class="fn">inc</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a increment instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Jmp%3C%26mut+Label%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/jmp.rs.html#4-8">source</a><a href="#impl-Jmp%3C%26mut+Label%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Jmp.html" title="trait juicebox_asm::insn::Jmp">Jmp</a>&lt;&amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.jmp" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/jmp.rs.html#5-7">source</a><a href="#method.jmp" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Jmp.html#tymethod.jmp" class="fn">jmp</a>(&amp;mut self, op1: &amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>)</h4></section></summary><div class='docblock'>Emit an unconditional jump instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Jnz%3C%26mut+Label%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/jnz.rs.html#4-8">source</a><a href="#impl-Jnz%3C%26mut+Label%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Jnz.html" title="trait juicebox_asm::insn::Jnz">Jnz</a>&lt;&amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.jnz" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/jnz.rs.html#5-7">source</a><a href="#method.jnz" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Jnz.html#tymethod.jnz" class="fn">jnz</a>(&amp;mut self, op1: &amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>)</h4></section></summary><div class='docblock'>Emit a conditional jump if not zero instruction (<code>ZF = 0</code>).</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Jz%3C%26mut+Label%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/jz.rs.html#4-8">source</a><a href="#impl-Jz%3C%26mut+Label%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Jz.html" title="trait juicebox_asm::insn::Jz">Jz</a>&lt;&amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.jz" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/jz.rs.html#5-7">source</a><a href="#method.jz" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Jz.html#tymethod.jz" class="fn">jz</a>(&amp;mut self, op1: &amp;mut <a class="struct" href="struct.Label.html" title="struct juicebox_asm::Label">Label</a>)</h4></section></summary><div class='docblock'>Emit a conditional jump if zero instruction (<code>ZF = 1</code>).</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CMem16,+Imm16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#110-114">source</a><a href="#impl-Mov%3CMem16,+Imm16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-16" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#111-113">source</a><a href="#method.mov-16" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CMem16,+Reg16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#44-48">source</a><a href="#impl-Mov%3CMem16,+Reg16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-6" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#45-47">source</a><a href="#method.mov-6" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CMem32,+Reg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#38-42">source</a><a href="#impl-Mov%3CMem32,+Reg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>, <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-5" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#39-41">source</a><a href="#method.mov-5" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>, op2: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CMem64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#32-36">source</a><a href="#impl-Mov%3CMem64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-4" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#33-35">source</a><a href="#method.mov-4" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CMem8,+Reg8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#50-54">source</a><a href="#impl-Mov%3CMem8,+Reg8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-7" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#51-53">source</a><a href="#method.mov-7" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, op2: <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg16,+Imm16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#96-100">source</a><a href="#impl-Mov%3CReg16,+Imm16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-14" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#97-99">source</a><a href="#method.mov-14" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, op2: <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg16,+Mem16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#70-74">source</a><a href="#impl-Mov%3CReg16,+Mem16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-10" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#71-73">source</a><a href="#method.mov-10" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, op2: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg16,+Reg16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#18-22">source</a><a href="#impl-Mov%3CReg16,+Reg16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#19-21">source</a><a href="#method.mov-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>, op2: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg32,+Imm32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#90-94">source</a><a href="#impl-Mov%3CReg32,+Imm32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, <a class="struct" href="struct.Imm32.html" title="struct juicebox_asm::Imm32">Imm32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-13" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#91-93">source</a><a href="#method.mov-13" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, op2: <a class="struct" href="struct.Imm32.html" title="struct juicebox_asm::Imm32">Imm32</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg32,+Mem32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#64-68">source</a><a href="#impl-Mov%3CReg32,+Mem32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-9" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#65-67">source</a><a href="#method.mov-9" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, op2: <a class="struct" href="struct.Mem32.html" title="struct juicebox_asm::Mem32">Mem32</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg32,+Reg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#12-16">source</a><a href="#impl-Mov%3CReg32,+Reg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#13-15">source</a><a href="#method.mov-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, op2: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg64,+Imm64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#84-88">source</a><a href="#impl-Mov%3CReg64,+Imm64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="struct" href="struct.Imm64.html" title="struct juicebox_asm::Imm64">Imm64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-12" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#85-87">source</a><a href="#method.mov-12" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="struct" href="struct.Imm64.html" title="struct juicebox_asm::Imm64">Imm64</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg64,+Mem64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#58-62">source</a><a href="#impl-Mov%3CReg64,+Mem64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-8" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#59-61">source</a><a href="#method.mov-8" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="struct" href="struct.Mem64.html" title="struct juicebox_asm::Mem64">Mem64</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#6-10">source</a><a href="#impl-Mov%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#7-9">source</a><a href="#method.mov" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg8,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#102-106">source</a><a href="#impl-Mov%3CReg8,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-15" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#103-105">source</a><a href="#method.mov-15" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg8,+Mem8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#76-80">source</a><a href="#impl-Mov%3CReg8,+Mem8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-11" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#77-79">source</a><a href="#method.mov-11" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, op2: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Mov%3CReg8,+Reg8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#24-28">source</a><a href="#impl-Mov%3CReg8,+Reg8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Mov.html" title="trait juicebox_asm::insn::Mov">Mov</a>&lt;<a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.mov-3" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/mov.rs.html#25-27">source</a><a href="#method.mov-3" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Mov.html#tymethod.mov" class="fn">mov</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>, op2: <a class="enum" href="enum.Reg8.html" title="enum juicebox_asm::Reg8">Reg8</a>)</h4></section></summary><div class='docblock'>Emit an move instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Pop%3CReg16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/pop.rs.html#10-14">source</a><a href="#impl-Pop%3CReg16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Pop.html" title="trait juicebox_asm::insn::Pop">Pop</a>&lt;<a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.pop-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/pop.rs.html#11-13">source</a><a href="#method.pop-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Pop.html#tymethod.pop" class="fn">pop</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>)</h4></section></summary><div class='docblock'>Emit a pop instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Pop%3CReg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/pop.rs.html#4-8">source</a><a href="#impl-Pop%3CReg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Pop.html" title="trait juicebox_asm::insn::Pop">Pop</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.pop" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/pop.rs.html#5-7">source</a><a href="#method.pop" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Pop.html#tymethod.pop" class="fn">pop</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a pop instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Push%3CReg16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/push.rs.html#10-14">source</a><a href="#impl-Push%3CReg16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Push.html" title="trait juicebox_asm::insn::Push">Push</a>&lt;<a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.push-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/push.rs.html#11-13">source</a><a href="#method.push-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Push.html#tymethod.push" class="fn">push</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg16.html" title="enum juicebox_asm::Reg16">Reg16</a>)</h4></section></summary><div class='docblock'>Emit a push instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Push%3CReg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/push.rs.html#4-8">source</a><a href="#impl-Push%3CReg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Push.html" title="trait juicebox_asm::insn::Push">Push</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.push" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/push.rs.html#5-7">source</a><a href="#method.push" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Push.html#tymethod.push" class="fn">push</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a push instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Sub%3CMem8,+Imm8%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/sub.rs.html#10-14">source</a><a href="#impl-Sub%3CMem8,+Imm8%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Sub.html" title="trait juicebox_asm::insn::Sub">Sub</a>&lt;<a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.sub-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/sub.rs.html#11-13">source</a><a href="#method.sub-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Sub.html#tymethod.sub" class="fn">sub</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem8.html" title="struct juicebox_asm::Mem8">Mem8</a>, op2: <a class="struct" href="struct.Imm8.html" title="struct juicebox_asm::Imm8">Imm8</a>)</h4></section></summary><div class='docblock'>Emit an sub instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Sub%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/sub.rs.html#4-8">source</a><a href="#impl-Sub%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Sub.html" title="trait juicebox_asm::insn::Sub">Sub</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.sub" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/sub.rs.html#5-7">source</a><a href="#method.sub" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Sub.html#tymethod.sub" class="fn">sub</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit an sub instruction.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Test%3CMem16,+Imm16%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#16-20">source</a><a href="#impl-Test%3CMem16,+Imm16%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Test.html" title="trait juicebox_asm::insn::Test">Test</a>&lt;<a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.test-2" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#17-19">source</a><a href="#method.test-2" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Test.html#tymethod.test" class="fn">test</a>(&amp;mut self, op1: <a class="struct" href="struct.Mem16.html" title="struct juicebox_asm::Mem16">Mem16</a>, op2: <a class="struct" href="struct.Imm16.html" title="struct juicebox_asm::Imm16">Imm16</a>)</h4></section></summary><div class='docblock'>Emit a logical compare instruction. <a href="insn/trait.Test.html#tymethod.test">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Test%3CReg32,+Reg32%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#10-14">source</a><a href="#impl-Test%3CReg32,+Reg32%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Test.html" title="trait juicebox_asm::insn::Test">Test</a>&lt;<a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.test-1" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#11-13">source</a><a href="#method.test-1" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Test.html#tymethod.test" class="fn">test</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>, op2: <a class="enum" href="enum.Reg32.html" title="enum juicebox_asm::Reg32">Reg32</a>)</h4></section></summary><div class='docblock'>Emit a logical compare instruction. <a href="insn/trait.Test.html#tymethod.test">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Test%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#4-8">source</a><a href="#impl-Test%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Test.html" title="trait juicebox_asm::insn::Test">Test</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.test" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/test.rs.html#5-7">source</a><a href="#method.test" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Test.html#tymethod.test" class="fn">test</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a logical compare instruction. <a href="insn/trait.Test.html#tymethod.test">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Xor%3CReg64,+Reg64%3E-for-Asm" class="impl"><a class="src rightside" href="../src/juicebox_asm/insn/xor.rs.html#4-8">source</a><a href="#impl-Xor%3CReg64,+Reg64%3E-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="insn/trait.Xor.html" title="trait juicebox_asm::insn::Xor">Xor</a>&lt;<a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>&gt; for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.xor" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/insn/xor.rs.html#5-7">source</a><a href="#method.xor" class="anchor">§</a><h4 class="code-header">fn <a href="insn/trait.Xor.html#tymethod.xor" class="fn">xor</a>(&amp;mut self, op1: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>, op2: <a class="enum" href="enum.Reg64.html" title="enum juicebox_asm::Reg64">Reg64</a>)</h4></section></summary><div class='docblock'>Emit a xor instruction.</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Asm" class="impl"><a href="#impl-Freeze-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section><section id="impl-RefUnwindSafe-for-Asm" class="impl"><a href="#impl-RefUnwindSafe-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section><section id="impl-Send-for-Asm" class="impl"><a href="#impl-Send-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section><section id="impl-Sync-for-Asm" class="impl"><a href="#impl-Sync-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section><section id="impl-Unpin-for-Asm" class="impl"><a href="#impl-Unpin-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section><section id="impl-UnwindSafe-for-Asm" class="impl"><a href="#impl-UnwindSafe-for-Asm" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Asm.html" title="struct juicebox_asm::Asm">Asm</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
diff --git a/juicebox_asm/struct.Runtime.html b/juicebox_asm/struct.Runtime.html
index 5734451..be0cb19 100644
--- a/juicebox_asm/struct.Runtime.html
+++ b/juicebox_asm/struct.Runtime.html
@@ -1,5 +1,5 @@
<!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="A simple `mmap`ed runtime with executable pages."><title>Runtime in juicebox_asm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../juicebox_asm/index.html">juicebox_<wbr>asm</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Runtime</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.add_code" title="add_code">add_code</a></li><li><a href="#method.disasm" title="disasm">disasm</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.with_profile" title="with_profile">with_profile</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Drop-for-Runtime" title="Drop">Drop</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Send-for-Runtime" title="!Send">!Send</a></li><li><a href="#impl-Sync-for-Runtime" title="!Sync">!Sync</a></li><li><a href="#impl-Freeze-for-Runtime" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Runtime" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Unpin-for-Runtime" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Runtime" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate juicebox_<wbr>asm</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">juicebox_asm</a></span><h1>Struct <span class="struct">Runtime</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/juicebox_asm/rt.rs.html#55-60">source</a> </span></div><pre class="rust item-decl"><code>pub struct Runtime { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A simple <code>mmap</code>ed runtime with executable pages.</p>
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Runtime" class="impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#62-241">source</a><a href="#impl-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#68-93">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a>.</p>
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Runtime" class="impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#62-204">source</a><a href="#impl-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#68-93">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a>.</p>
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>Panics if the <code>mmap</code> call fails.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_profile" class="method"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#104-108">source</a><h4 class="code-header">pub fn <a href="#method.with_profile" class="fn">with_profile</a>() -&gt; <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a> which also generates static perf metat data.</p>
@@ -21,14 +21,14 @@ pointer is only valid until the <a href="struct.Runtime.html" title="struct juic
<span class="kw">let </span>nop = <span class="kw">unsafe </span>{ rt.add_code::&lt;<span class="kw">extern </span><span class="string">"C" </span><span class="kw">fn</span>()&gt;(<span class="kw-2">&amp;</span>code) };
nop();</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.disasm" class="method"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#168-208">source</a><h4 class="code-header">pub fn <a href="#method.disasm" class="fn">disasm</a>(&amp;self)</h4></section></summary><div class="docblock"><p>Disassemble the code currently added to the runtime, using
+</div></details><details class="toggle method-toggle" open><summary><section id="method.disasm" class="method"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#168-171">source</a><h4 class="code-header">pub fn <a href="#method.disasm" class="fn">disasm</a>(&amp;self)</h4></section></summary><div class="docblock"><p>Disassemble the code currently added to the runtime, using
<a href="https://nasm.us/index.php"><code>ndisasm</code></a> and print it to <em>stdout</em>. If
<code>ndisasm</code> is not available on the system this prints a warning and
becomes a nop.</p>
<h5 id="panics-3"><a class="doc-anchor" href="#panics-3">§</a>Panics</h5>
<p>Panics if anything goes wrong with spawning, writing to or reading from
the <code>ndisasm</code> child process.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Drop-for-Runtime" class="impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#243-252">source</a><a href="#impl-Drop-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#246-251">source</a><a href="#method.drop" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/ops/drop/trait.Drop.html#tymethod.drop" class="fn">drop</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Unmaps the code page. This invalidates all the function pointer returned by
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Drop-for-Runtime" class="impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#206-215">source</a><a href="#impl-Drop-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a class="src rightside" href="../src/juicebox_asm/rt.rs.html#209-214">source</a><a href="#method.drop" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/ops/drop/trait.Drop.html#tymethod.drop" class="fn">drop</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Unmaps the code page. This invalidates all the function pointer returned by
<a href="struct.Runtime.html#method.add_code" title="method juicebox_asm::Runtime::add_code"><code>Runtime::add_code</code></a>.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Runtime" class="impl"><a href="#impl-Freeze-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section><section id="impl-RefUnwindSafe-for-Runtime" class="impl"><a href="#impl-RefUnwindSafe-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section><section id="impl-Send-for-Runtime" class="impl"><a href="#impl-Send-for-Runtime" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section><section id="impl-Sync-for-Runtime" class="impl"><a href="#impl-Sync-for-Runtime" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section><section id="impl-Unpin-for-Runtime" class="impl"><a href="#impl-Unpin-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section><section id="impl-UnwindSafe-for-Runtime" class="impl"><a href="#impl-UnwindSafe-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Runtime.html" title="struct juicebox_asm::Runtime">Runtime</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#139">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.83.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
diff --git a/search-index.js b/search-index.js
index 62be56b..f5c94d8 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,4 +1,4 @@
-var searchIndex = new Map(JSON.parse('[["add",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["bf",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["fib",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["juicebox_asm",{"t":"FFFFFFFFFFGGGGFNNNNNNNNNNNPPPPNPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPNPPNNNNNNNNNNNNNNNNNPNNNNNNPPPNPNNPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKKKKKKKKKKKKKKKMMMMMMMMMMMMMMMM","n":["Asm","Imm16","Imm32","Imm64","Imm8","Label","Mem16","Mem32","Mem64","Mem8","Reg16","Reg32","Reg64","Reg8","Runtime","add","","","","","","","","","","add_code","ah","al","ax","bh","bind","bl","borrow","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","bp","bpl","bx","call","ch","cl","clone","","","","clone_into","","","","clone_to_uninit","","","","cmovnz","cmovz","cmp","","","cx","dec","","","","","","dh","di","dil","disasm","dl","drop","","dx","eax","ebp","ebx","ecx","edi","edx","esi","esp","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","inc","","","","","","indirect","","","","indirect_base_index","","","","indirect_disp","","","","insn","into","","","","","","","","","","","","","","","into_code","jmp","jnz","jz","mov","","","","","","","","","","","","","","","","","new","","","nop","pop","","push","","r10","r10d","r10l","r10w","r11","r11d","r11l","r11w","r12","r12d","r12l","r12w","r13","r13d","r13l","r13w","r14","r14d","r14l","r14w","r15","r15d","r15l","r15w","r8","r8d","r8l","r8w","r9","r9d","r9l","r9w","rax","rbp","rbx","rcx","rdi","rdx","ret","rsi","rsp","si","sil","sp","spl","sub","","test","","","to_owned","","","","try_from","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","with_profile","xor","Add","Call","Cmovnz","Cmovz","Cmp","Dec","Inc","Jmp","Jnz","Jz","Mov","Pop","Push","Sub","Test","Xor","add","call","cmovnz","cmovz","cmp","dec","inc","jmp","jnz","jz","mov","pop","push","sub","test","xor"],"q":[[0,"juicebox_asm"],[309,"juicebox_asm::insn"],[341,"juicebox_asm::asm"],[342,"juicebox_asm::reg"],[343,"juicebox_asm::mem"],[344,"juicebox_asm::imm"],[345,"juicebox_asm::rt"],[346,"core::convert"],[347,"juicebox_asm::label"],[348,"alloc::vec"],[349,"core::result"],[350,"core::any"]],"i":"```````````````d000000000AlBf0Aj1313Bd3A`AhBnCfnAbAdjhAf;<>:=9876543210;<;<;><<10;<10;<10;<>>>>>;>>>>>><;<=<:=;00000000>:=99988888777777766666666666543210;<>>>>>>543254325432`>:=9876543210;<>>>>>>>>>>>>>>>>>>>>>>:=>>>>>10<;10<;10<;10<;10<;10<;10<;10<;111111>11;<;<>>>>>10;<>:=9876543210;<>:=9876543210;<>:=9876543210;<=>````````````````DdDfDhDjDlDnE`EbEdEfEhEjElEnF`Fb","f":"```````````````{{{f{bd}}hj}l}{{{f{bd}}hh}l}{{{f{bd}}nA`}l}{{{f{bd}}AbA`}l}{{{f{bd}}AdA`}l}{{{f{bd}}jA`}l}{{{f{bd}}jh}l}{{{f{bd}}AfAf}l}{{{f{bd}}AbAh}l}{{{f{bd}}AbAj}l}{{{f{bAl}}c}e{{Bb{{B`{An}}}}}{}}````{{{f{bd}}{f{bBd}}}l}`{f{{f{c}}}{}}00000000000000{{{f{b}}}{{f{bc}}}{}}00000000000000```{{{f{bd}}h}l}``{{{f{h}}}h}{{{f{Af}}}Af}{{{f{Aj}}}Aj}{{{f{Bf}}}Bf}{{f{f{bc}}}l{}}000{fl}000{{{f{bd}}hh}l}00{{{f{bd}}nA`}l}>`{{{f{bd}}Ab}l}{{{f{bd}}Ad}l}{{{f{bd}}j}l};{{{f{bd}}Af}l}{{{f{bd}}n}l}```{{{f{Al}}}l}`{{{f{bBd}}}l}{{{f{bAl}}}l}`````````{cc{}}00{AnA`}{BhA`}2{BhAh}{BjAh}4{BlAh}{AnAh}{AnBn}{BlBn}8{C`Bn}{CbBn}{BjBn}{BhBn}<{CdCf}{ChCf}{C`Cf}{CbCf}{BjCf}{BlCf}{AnCf}{BhCf}{CjCf}{ClCf}{cc{}}0000000{{{f{bd}}Af}l}{{{f{bd}}n}l}{{{f{bd}}Ab}l}{{{f{bd}}Ad}l}{{{f{bd}}j}l}{{{f{bd}}h}l}{hn}{hAb}{hAd}{hj}{{hh}n}{{hh}Ab}{{hh}Ad}{{hh}j}{{hCb}n}{{hCb}Ab}{{hCb}Ad}{{hCb}j}`{{}c{}}00000000000000{d{{Cn{An}}}}{{{f{bd}}{f{bBd}}}l}00{{{f{bd}}nBf}l}{{{f{bd}}AjAh}l}{{{f{bd}}AbAh}l}{{{f{bd}}AbAj}l}{{{f{bd}}AdAf}l}{{{f{bd}}jh}l}{{{f{bd}}BfBf}l}{{{f{bd}}AjAj}l}{{{f{bd}}AfAf}l}{{{f{bd}}BfA`}l}{{{f{bd}}hj}l}{{{f{bd}}AfAd}l}{{{f{bd}}AjAb}l}{{{f{bd}}Bfn}l}{{{f{bd}}hCf}l}{{{f{bd}}AfBn}l}{{{f{bd}}hh}l}{{}d}{{}Bd}{{}Al}{{{f{bd}}}l}{{{f{bd}}h}l}{{{f{bd}}Aj}l}10``````````````````````````````````````2``````6{{{f{bd}}nA`}l}?7{{{f{bd}}AbAh}l}{fc{}}000{c{{D`{e}}}{}{}}00000000000000{{}{{D`{c}}}{}}00000000000000{fDb}000000000000009<````````````````{{{f{bDd}}ce}l{}{}}{{{f{bDf}}c}l{}}{{{f{bDh}}ce}l{}{}}{{{f{bDj}}ce}l{}{}}{{{f{bDl}}ce}l{}{}}{{{f{bDn}}c}l{}}{{{f{bE`}}c}l{}}{{{f{bEb}}c}l{}}{{{f{bEd}}c}l{}}{{{f{bEf}}c}l{}}{{{f{bEh}}ce}l{}{}}{{{f{bEj}}c}l{}}{{{f{bEl}}c}l{}}{{{f{bEn}}ce}l{}{}}{{{f{bF`}}ce}l{}{}}{{{f{bFb}}ce}l{}{}}","D":"Ll","p":[[0,"mut"],[5,"Asm",0,341],[1,"reference"],[6,"Reg64",0,342],[5,"Mem64",0,343],[1,"unit"],[5,"Mem8",0,343],[5,"Imm8",0,344],[5,"Mem16",0,343],[5,"Mem32",0,343],[6,"Reg32",0,342],[5,"Imm16",0,344],[6,"Reg16",0,342],[5,"Runtime",0,345],[1,"u8"],[1,"slice"],[10,"AsRef",346],[5,"Label",0,347],[6,"Reg8",0,342],[1,"i8"],[1,"u16"],[1,"i16"],[5,"Imm32",0,344],[1,"u32"],[1,"i32"],[1,"u64"],[5,"Imm64",0,344],[1,"i64"],[1,"usize"],[1,"isize"],[5,"Vec",348],[6,"Result",349],[5,"TypeId",350],[10,"Add",309],[10,"Call",309],[10,"Cmovnz",309],[10,"Cmovz",309],[10,"Cmp",309],[10,"Dec",309],[10,"Inc",309],[10,"Jmp",309],[10,"Jnz",309],[10,"Jz",309],[10,"Mov",309],[10,"Pop",309],[10,"Push",309],[10,"Sub",309],[10,"Test",309],[10,"Xor",309]],"r":[[0,341],[1,344],[2,344],[3,344],[4,344],[5,347],[6,343],[7,343],[8,343],[9,343],[10,342],[11,342],[12,342],[13,342],[14,345]],"b":[[15,"impl-Add%3CReg64,+Mem64%3E-for-Asm"],[16,"impl-Add%3CReg64,+Reg64%3E-for-Asm"],[17,"impl-Add%3CMem8,+Imm8%3E-for-Asm"],[18,"impl-Add%3CMem16,+Imm8%3E-for-Asm"],[19,"impl-Add%3CMem32,+Imm8%3E-for-Asm"],[20,"impl-Add%3CMem64,+Imm8%3E-for-Asm"],[21,"impl-Add%3CMem64,+Reg64%3E-for-Asm"],[22,"impl-Add%3CReg32,+Reg32%3E-for-Asm"],[23,"impl-Add%3CMem16,+Imm16%3E-for-Asm"],[24,"impl-Add%3CMem16,+Reg16%3E-for-Asm"],[82,"impl-Cmp%3CReg64,+Reg64%3E-for-Asm"],[83,"impl-Cmp%3CMem8,+Imm8%3E-for-Asm"],[84,"impl-Cmp%3CMem16,+Imm16%3E-for-Asm"],[86,"impl-Dec%3CMem16%3E-for-Asm"],[87,"impl-Dec%3CMem32%3E-for-Asm"],[88,"impl-Dec%3CMem64%3E-for-Asm"],[89,"impl-Dec%3CReg64%3E-for-Asm"],[90,"impl-Dec%3CReg32%3E-for-Asm"],[91,"impl-Dec%3CMem8%3E-for-Asm"],[111,"impl-From%3Cu8%3E-for-Imm8"],[112,"impl-From%3Ci8%3E-for-Imm8"],[114,"impl-From%3Ci8%3E-for-Imm16"],[115,"impl-From%3Cu16%3E-for-Imm16"],[117,"impl-From%3Ci16%3E-for-Imm16"],[118,"impl-From%3Cu8%3E-for-Imm16"],[119,"impl-From%3Cu8%3E-for-Imm32"],[120,"impl-From%3Ci16%3E-for-Imm32"],[122,"impl-From%3Cu32%3E-for-Imm32"],[123,"impl-From%3Ci32%3E-for-Imm32"],[124,"impl-From%3Cu16%3E-for-Imm32"],[125,"impl-From%3Ci8%3E-for-Imm32"],[127,"impl-From%3Cu64%3E-for-Imm64"],[128,"impl-From%3Ci64%3E-for-Imm64"],[129,"impl-From%3Cu32%3E-for-Imm64"],[130,"impl-From%3Ci32%3E-for-Imm64"],[131,"impl-From%3Cu16%3E-for-Imm64"],[132,"impl-From%3Ci16%3E-for-Imm64"],[133,"impl-From%3Cu8%3E-for-Imm64"],[134,"impl-From%3Ci8%3E-for-Imm64"],[135,"impl-From%3Cusize%3E-for-Imm64"],[136,"impl-From%3Cisize%3E-for-Imm64"],[145,"impl-Inc%3CReg32%3E-for-Asm"],[146,"impl-Inc%3CMem8%3E-for-Asm"],[147,"impl-Inc%3CMem16%3E-for-Asm"],[148,"impl-Inc%3CMem32%3E-for-Asm"],[149,"impl-Inc%3CMem64%3E-for-Asm"],[150,"impl-Inc%3CReg64%3E-for-Asm"],[183,"impl-Mov%3CMem8,+Reg8%3E-for-Asm"],[184,"impl-Mov%3CReg16,+Imm16%3E-for-Asm"],[185,"impl-Mov%3CMem16,+Imm16%3E-for-Asm"],[186,"impl-Mov%3CMem16,+Reg16%3E-for-Asm"],[187,"impl-Mov%3CMem32,+Reg32%3E-for-Asm"],[188,"impl-Mov%3CMem64,+Reg64%3E-for-Asm"],[189,"impl-Mov%3CReg8,+Reg8%3E-for-Asm"],[190,"impl-Mov%3CReg16,+Reg16%3E-for-Asm"],[191,"impl-Mov%3CReg32,+Reg32%3E-for-Asm"],[192,"impl-Mov%3CReg8,+Imm8%3E-for-Asm"],[193,"impl-Mov%3CReg64,+Mem64%3E-for-Asm"],[194,"impl-Mov%3CReg32,+Mem32%3E-for-Asm"],[195,"impl-Mov%3CReg16,+Mem16%3E-for-Asm"],[196,"impl-Mov%3CReg8,+Mem8%3E-for-Asm"],[197,"impl-Mov%3CReg64,+Imm64%3E-for-Asm"],[198,"impl-Mov%3CReg32,+Imm32%3E-for-Asm"],[199,"impl-Mov%3CReg64,+Reg64%3E-for-Asm"],[204,"impl-Pop%3CReg64%3E-for-Asm"],[205,"impl-Pop%3CReg16%3E-for-Asm"],[206,"impl-Push%3CReg64%3E-for-Asm"],[207,"impl-Push%3CReg16%3E-for-Asm"],[253,"impl-Sub%3CReg64,+Reg64%3E-for-Asm"],[254,"impl-Sub%3CMem8,+Imm8%3E-for-Asm"],[255,"impl-Test%3CReg32,+Reg32%3E-for-Asm"],[256,"impl-Test%3CReg64,+Reg64%3E-for-Asm"],[257,"impl-Test%3CMem16,+Imm16%3E-for-Asm"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO8ADwAQAAkAGwADACAAPwBhAAEAZAAIAHAAAQBzAAEAdgADAHsAAwCAAAkAkgAFALUAEwDNACkA+AA7ADUBAAA="}],["tiny_vm",{"t":"PPPPPPPFPPPFPGGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNN","n":["A","Add","Addi","B","Branch","BranchZero","C","Fixup","Halt","Load","LoadImm","PhysAddr","Store","TinyInsn","TinyReg","TinyVm","bind","borrow","","","","","borrow_mut","","","","","clone","","clone_into","","clone_to_uninit","","dump","eq","","fmt","","from","","","","","interp","into","","","","","","jit","make_tinyvm_fib","make_tinyvm_jit_perf","make_tinyvm_jit_test","new","","read_mem","read_reg","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","write_mem","write_reg"],"q":[[0,"tiny_vm"],[77,"alloc::vec"],[78,"core::fmt"],[79,"core::result"],[80,"core::any"]],"i":"nf01001`000`0```bAhA`24310243434343043431024301102430```02004310243102431024300","f":"````````````````{{b{j{d{h{f}}}}}l}{j{{j{c}}}{}}0000{{{j{d}}}{{j{dc}}}{}}0000{{{j{n}}}n}{{{j{f}}}f}{{j{j{dc}}}l{}}0{jl}0{{{j{A`}}}l}{{{j{n}}{j{n}}}Ab}{{{j{f}}{j{f}}}Ab}{{{j{n}}{j{dAd}}}Af}{{{j{f}}{j{dAd}}}Af}{cc{}}0000{{{j{dA`}}}l}{AhAj}{{}c{}}00002{Al{{h{f}}}}{{}{{h{f}}}}0{{{h{f}}}A`}{Ajb}{{{j{A`}}Ah}Al}{{{j{A`}}n}Al}{jc{}}0{c{{An{e}}}{}{}}0000{{}{{An{c}}}{}}0000{jB`}0000{{{j{dA`}}AhAl}l}{{{j{dA`}}nAl}l}","D":"Dj","p":[[5,"Fixup",0],[0,"mut"],[6,"TinyInsn",0],[5,"Vec",77],[1,"reference"],[1,"unit"],[6,"TinyReg",0],[5,"TinyVm",0],[1,"bool"],[5,"Formatter",78],[8,"Result",78],[5,"PhysAddr",0],[1,"usize"],[1,"u16"],[6,"Result",79],[5,"TypeId",80]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACgABwABAAAABAAAAAcAAAASAA8AIwADAC0AAAA7ABAA"}]]'));
+var searchIndex = new Map(JSON.parse('[["add",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["bf",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["fib",{"t":"","n":[],"q":[],"i":"","f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],["juicebox_asm",{"t":"FFFFFFFFFFGGGGFNNNNNNNNNNNPPPPNPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPNPPNNNNNNNNNNNNNNNNNPNNNNNNPPPNNPNNPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKKKKKKKKKKKKKKKMMMMMMMMMMMMMMMM","n":["Asm","Imm16","Imm32","Imm64","Imm8","Label","Mem16","Mem32","Mem64","Mem8","Reg16","Reg32","Reg64","Reg8","Runtime","add","","","","","","","","","","add_code","ah","al","ax","bh","bind","bl","borrow","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","bp","bpl","bx","call","ch","cl","clone","","","","clone_into","","","","clone_to_uninit","","","","cmovnz","cmovz","cmp","","","cx","dec","","","","","","dh","di","dil","disasm","","dl","drop","","dx","eax","ebp","ebx","ecx","edi","edx","esi","esp","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","inc","","","","","","indirect","","","","indirect_base_index","","","","indirect_disp","","","","insn","into","","","","","","","","","","","","","","","into_code","jmp","jnz","jz","mov","","","","","","","","","","","","","","","","","new","","","nop","pop","","push","","r10","r10d","r10l","r10w","r11","r11d","r11l","r11w","r12","r12d","r12l","r12w","r13","r13d","r13l","r13w","r14","r14d","r14l","r14w","r15","r15d","r15l","r15w","r8","r8d","r8l","r8w","r9","r9d","r9l","r9w","rax","rbp","rbx","rcx","rdi","rdx","ret","rsi","rsp","si","sil","sp","spl","sub","","test","","","to_owned","","","","try_from","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","with_profile","xor","Add","Call","Cmovnz","Cmovz","Cmp","Dec","Inc","Jmp","Jnz","Jz","Mov","Pop","Push","Sub","Test","Xor","add","call","cmovnz","cmovz","cmp","dec","inc","jmp","jnz","jz","mov","pop","push","sub","test","xor"],"q":[[0,"juicebox_asm"],[310,"juicebox_asm::insn"],[342,"juicebox_asm::asm"],[343,"juicebox_asm::mem"],[344,"juicebox_asm::imm"],[345,"juicebox_asm::reg"],[346,"juicebox_asm::rt"],[347,"core::convert"],[348,"juicebox_asm::label"],[349,"alloc::vec"],[350,"core::result"],[351,"core::any"]],"i":"```````````````d000000000AlBf0Ab1313Bd3jAjBnCfhA`AhAdAfn;<>:=9876543210;<;<;><<10;<10;<10;<>>>>>;>>>>>><;<>=<:=;00000000>:=99988888777777766666666666543210;<>>>>>>543254325432`>:=9876543210;<>>>>>>>>>>>>>>>>>>>>>>:=>>>>>10<;10<;10<;10<;10<;10<;10<;10<;111111>11;<;<>>>>>10;<>:=9876543210;<>:=9876543210;<>:=9876543210;<=>````````````````DdDfDhDjDlDnE`EbEdEfEhEjElEnF`Fb","f":"```````````````{{{f{bd}}hj}l}{{{f{bd}}nn}l}{{{f{bd}}A`Ab}l}{{{f{bd}}AdAf}l}{{{f{bd}}AfAd}l}{{{f{bd}}AfAf}l}{{{f{bd}}A`j}l}{{{f{bd}}Ahj}l}{{{f{bd}}Adj}l}{{{f{bd}}A`Aj}l}{{{f{bAl}}c}e{{Bb{{B`{An}}}}}{}}````{{{f{bd}}{f{bBd}}}l}`{f{{f{c}}}{}}00000000000000{{{f{b}}}{{f{bc}}}{}}00000000000000```{{{f{bd}}Af}l}``{{{f{Af}}}Af}{{{f{n}}}n}{{{f{Ab}}}Ab}{{{f{Bf}}}Bf}{{f{f{bc}}}l{}}000{fl}000???;{{{f{bd}}hj}l}`{{{f{bd}}A`}l}{{{f{bd}}Ah}l}{{{f{bd}}h}l}{{{f{bd}}n}l}{{{f{bd}}Ad}l}<```{{{f{d}}}l}{{{f{Al}}}l}`{{{f{bBd}}}l}{{{f{bAl}}}l}`````````{cc{}}00{Anj}1{Bhj}{BjAj}{BlAj}{AnAj}{BhAj}6{BhBn}{AnBn}8{C`Bn}{CbBn}{BjBn}{BlBn}<{CdCf}{ChCf}{CjCf}{C`Cf}{CbCf}{BjCf}{BlCf}{ClCf}{AnCf}{BhCf}{cc{}}0000000{{{f{bd}}Af}l}{{{f{bd}}Ad}l}{{{f{bd}}Ah}l}{{{f{bd}}n}l}{{{f{bd}}h}l}{{{f{bd}}A`}l}{Afh}{AfA`}{AfAh}{AfAd}{{AfAf}h}{{AfAf}A`}{{AfAf}Ah}{{AfAf}Ad}{{AfCb}h}{{AfCb}A`}{{AfCb}Ah}{{AfCb}Ad}`{{}c{}}00000000000000{d{{Cn{An}}}}{{{f{bd}}{f{bBd}}}l}00{{{f{bd}}AfAd}l}{{{f{bd}}hBf}l}{{{f{bd}}A`Aj}l}{{{f{bd}}Bfj}l}{{{f{bd}}AbAj}l}{{{f{bd}}nn}l}{{{f{bd}}AbAb}l}{{{f{bd}}nBn}l}{{{f{bd}}AfCf}l}{{{f{bd}}Bfh}l}{{{f{bd}}BfBf}l}{{{f{bd}}AbA`}l}{{{f{bd}}nAh}l}{{{f{bd}}AdAf}l}{{{f{bd}}Ahn}l}{{{f{bd}}A`Ab}l}{{{f{bd}}AfAf}l}{{}d}{{}Bd}{{}Al}{{{f{bd}}}l}{{{f{bd}}Ab}l}{{{f{bd}}Af}l}10``````````````````````````````````````2``````6{{{f{bd}}hj}l}7{{{f{bd}}nn}l}{{{f{bd}}A`Aj}l}{fc{}}000{c{{D`{e}}}{}{}}00000000000000{{}{{D`{c}}}{}}00000000000000{fDb}00000000000000:=````````````````{{{f{bDd}}ce}l{}{}}{{{f{bDf}}c}l{}}{{{f{bDh}}ce}l{}{}}{{{f{bDj}}ce}l{}{}}{{{f{bDl}}ce}l{}{}}{{{f{bDn}}c}l{}}{{{f{bE`}}c}l{}}{{{f{bEb}}c}l{}}{{{f{bEd}}c}l{}}{{{f{bEf}}c}l{}}{{{f{bEh}}ce}l{}{}}{{{f{bEj}}c}l{}}{{{f{bEl}}c}l{}}{{{f{bEn}}ce}l{}{}}{{{f{bF`}}ce}l{}{}}{{{f{bFb}}ce}l{}{}}","D":"Ln","p":[[0,"mut"],[5,"Asm",0,342],[1,"reference"],[5,"Mem8",0,343],[5,"Imm8",0,344],[1,"unit"],[6,"Reg32",0,345],[5,"Mem16",0,343],[6,"Reg16",0,345],[5,"Mem64",0,343],[6,"Reg64",0,345],[5,"Mem32",0,343],[5,"Imm16",0,344],[5,"Runtime",0,346],[1,"u8"],[1,"slice"],[10,"AsRef",347],[5,"Label",0,348],[6,"Reg8",0,345],[1,"i8"],[1,"u16"],[1,"i16"],[5,"Imm32",0,344],[1,"u32"],[1,"i32"],[1,"usize"],[5,"Imm64",0,344],[1,"u64"],[1,"i64"],[1,"isize"],[5,"Vec",349],[6,"Result",350],[5,"TypeId",351],[10,"Add",310],[10,"Call",310],[10,"Cmovnz",310],[10,"Cmovz",310],[10,"Cmp",310],[10,"Dec",310],[10,"Inc",310],[10,"Jmp",310],[10,"Jnz",310],[10,"Jz",310],[10,"Mov",310],[10,"Pop",310],[10,"Push",310],[10,"Sub",310],[10,"Test",310],[10,"Xor",310]],"r":[[0,342],[1,344],[2,344],[3,344],[4,344],[5,348],[6,343],[7,343],[8,343],[9,343],[10,345],[11,345],[12,345],[13,345],[14,346]],"b":[[15,"impl-Add%3CMem8,+Imm8%3E-for-Asm"],[16,"impl-Add%3CReg32,+Reg32%3E-for-Asm"],[17,"impl-Add%3CMem16,+Reg16%3E-for-Asm"],[18,"impl-Add%3CMem64,+Reg64%3E-for-Asm"],[19,"impl-Add%3CReg64,+Mem64%3E-for-Asm"],[20,"impl-Add%3CReg64,+Reg64%3E-for-Asm"],[21,"impl-Add%3CMem16,+Imm8%3E-for-Asm"],[22,"impl-Add%3CMem32,+Imm8%3E-for-Asm"],[23,"impl-Add%3CMem64,+Imm8%3E-for-Asm"],[24,"impl-Add%3CMem16,+Imm16%3E-for-Asm"],[82,"impl-Cmp%3CReg64,+Reg64%3E-for-Asm"],[83,"impl-Cmp%3CMem16,+Imm16%3E-for-Asm"],[84,"impl-Cmp%3CMem8,+Imm8%3E-for-Asm"],[86,"impl-Dec%3CMem16%3E-for-Asm"],[87,"impl-Dec%3CMem32%3E-for-Asm"],[88,"impl-Dec%3CMem8%3E-for-Asm"],[89,"impl-Dec%3CReg32%3E-for-Asm"],[90,"impl-Dec%3CMem64%3E-for-Asm"],[91,"impl-Dec%3CReg64%3E-for-Asm"],[112,"impl-From%3Cu8%3E-for-Imm8"],[114,"impl-From%3Ci8%3E-for-Imm8"],[115,"impl-From%3Cu16%3E-for-Imm16"],[116,"impl-From%3Ci16%3E-for-Imm16"],[117,"impl-From%3Cu8%3E-for-Imm16"],[118,"impl-From%3Ci8%3E-for-Imm16"],[120,"impl-From%3Ci8%3E-for-Imm32"],[121,"impl-From%3Cu8%3E-for-Imm32"],[123,"impl-From%3Cu32%3E-for-Imm32"],[124,"impl-From%3Ci32%3E-for-Imm32"],[125,"impl-From%3Cu16%3E-for-Imm32"],[126,"impl-From%3Ci16%3E-for-Imm32"],[128,"impl-From%3Cusize%3E-for-Imm64"],[129,"impl-From%3Cu64%3E-for-Imm64"],[130,"impl-From%3Ci64%3E-for-Imm64"],[131,"impl-From%3Cu32%3E-for-Imm64"],[132,"impl-From%3Ci32%3E-for-Imm64"],[133,"impl-From%3Cu16%3E-for-Imm64"],[134,"impl-From%3Ci16%3E-for-Imm64"],[135,"impl-From%3Cisize%3E-for-Imm64"],[136,"impl-From%3Cu8%3E-for-Imm64"],[137,"impl-From%3Ci8%3E-for-Imm64"],[146,"impl-Inc%3CReg64%3E-for-Asm"],[147,"impl-Inc%3CMem64%3E-for-Asm"],[148,"impl-Inc%3CMem32%3E-for-Asm"],[149,"impl-Inc%3CReg32%3E-for-Asm"],[150,"impl-Inc%3CMem8%3E-for-Asm"],[151,"impl-Inc%3CMem16%3E-for-Asm"],[184,"impl-Mov%3CReg64,+Mem64%3E-for-Asm"],[185,"impl-Mov%3CMem8,+Reg8%3E-for-Asm"],[186,"impl-Mov%3CMem16,+Imm16%3E-for-Asm"],[187,"impl-Mov%3CReg8,+Imm8%3E-for-Asm"],[188,"impl-Mov%3CReg16,+Imm16%3E-for-Asm"],[189,"impl-Mov%3CReg32,+Reg32%3E-for-Asm"],[190,"impl-Mov%3CReg16,+Reg16%3E-for-Asm"],[191,"impl-Mov%3CReg32,+Imm32%3E-for-Asm"],[192,"impl-Mov%3CReg64,+Imm64%3E-for-Asm"],[193,"impl-Mov%3CReg8,+Mem8%3E-for-Asm"],[194,"impl-Mov%3CReg8,+Reg8%3E-for-Asm"],[195,"impl-Mov%3CReg16,+Mem16%3E-for-Asm"],[196,"impl-Mov%3CReg32,+Mem32%3E-for-Asm"],[197,"impl-Mov%3CMem64,+Reg64%3E-for-Asm"],[198,"impl-Mov%3CMem32,+Reg32%3E-for-Asm"],[199,"impl-Mov%3CMem16,+Reg16%3E-for-Asm"],[200,"impl-Mov%3CReg64,+Reg64%3E-for-Asm"],[205,"impl-Pop%3CReg16%3E-for-Asm"],[206,"impl-Pop%3CReg64%3E-for-Asm"],[207,"impl-Push%3CReg16%3E-for-Asm"],[208,"impl-Push%3CReg64%3E-for-Asm"],[254,"impl-Sub%3CReg64,+Reg64%3E-for-Asm"],[255,"impl-Sub%3CMem8,+Imm8%3E-for-Asm"],[256,"impl-Test%3CReg64,+Reg64%3E-for-Asm"],[257,"impl-Test%3CReg32,+Reg32%3E-for-Asm"],[258,"impl-Test%3CMem16,+Imm16%3E-for-Asm"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO8ADwAQAAkAGwADACAAPwBiAAEAZQAIAHEAAABzAAQAeQABAHwAAwCBAAkAkwAFALYAEwDOACkA+QA7ADYBAAA="}],["tiny_vm",{"t":"PPPPPPPFPPPFPGGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNN","n":["A","Add","Addi","B","Branch","BranchZero","C","Fixup","Halt","Load","LoadImm","PhysAddr","Store","TinyInsn","TinyReg","TinyVm","bind","borrow","","","","","borrow_mut","","","","","clone","","clone_into","","clone_to_uninit","","dump","eq","","fmt","","from","","","","","interp","into","","","","","","jit","make_tinyvm_fib","make_tinyvm_jit_perf","make_tinyvm_jit_test","new","","read_mem","read_reg","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","write_mem","write_reg"],"q":[[0,"tiny_vm"],[77,"alloc::vec"],[78,"core::fmt"],[79,"core::result"],[80,"core::any"]],"i":"nf01001`000`0```bAhA`24310243434343043431024301102430```02004310243102431024300","f":"````````````````{{b{j{d{h{f}}}}}l}{j{{j{c}}}{}}0000{{{j{d}}}{{j{dc}}}{}}0000{{{j{n}}}n}{{{j{f}}}f}{{j{j{dc}}}l{}}0{jl}0{{{j{A`}}}l}{{{j{n}}{j{n}}}Ab}{{{j{f}}{j{f}}}Ab}{{{j{n}}{j{dAd}}}Af}{{{j{f}}{j{dAd}}}Af}{cc{}}0000{{{j{dA`}}}l}{AhAj}{{}c{}}00002{Al{{h{f}}}}{{}{{h{f}}}}0{{{h{f}}}A`}{Ajb}{{{j{A`}}Ah}Al}{{{j{A`}}n}Al}{jc{}}0{c{{An{e}}}{}{}}0000{{}{{An{c}}}{}}0000{jB`}0000{{{j{dA`}}AhAl}l}{{{j{dA`}}nAl}l}","D":"Dj","p":[[5,"Fixup",0],[0,"mut"],[6,"TinyInsn",0],[5,"Vec",77],[1,"reference"],[1,"unit"],[6,"TinyReg",0],[5,"TinyVm",0],[1,"bool"],[5,"Formatter",78],[8,"Result",78],[5,"PhysAddr",0],[1,"usize"],[1,"u16"],[6,"Result",79],[5,"TypeId",80]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACgABwABAAAABAAAAAcAAAASAA8AIwADAC0AAAA7ABAA"}]]'));
if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
else if (window.initSearch) window.initSearch(searchIndex);
-//{"start":39,"fragment_lengths":[111,111,112,8243,1542]} \ No newline at end of file
+//{"start":39,"fragment_lengths":[111,111,112,8279,1542]} \ No newline at end of file
diff --git a/search.desc/juicebox_asm/juicebox_asm-desc-0-.js b/search.desc/juicebox_asm/juicebox_asm-desc-0-.js
index 9b94cf9..0df1a31 100644
--- a/search.desc/juicebox_asm/juicebox_asm-desc-0-.js
+++ b/search.desc/juicebox_asm/juicebox_asm-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("juicebox_asm", 0, "A simple <code>x64</code> jit assembler with a minimal runtime to …\n<code>x64</code> jit assembler.\nType representing a 16 bit immediate.\nType representing a 32 bit immediate.\nType representing a 64 bit immediate.\nType representing an 8 bit immediate.\nA label which is used as target for jump instructions.\nA memory operand with <code>word</code> size (16 bit).\nA memory operand with <code>dword</code> size (32 bit).\nA memory operand with <code>qword</code> size (64 bit).\nA memory operand with <code>byte</code> size (8 bit).\nDefinition of 16 bit registers.\nDefinition of 32 bit registers.\nDefinition of 64 bit registers.\nDefinition of 8 bit registers.\nA simple <code>mmap</code>ed runtime with executable pages.\nAdd the block of <code>code</code> to the runtime and a get function …\nBind the Label to the current location.\nDisassemble the code currently added to the runtime, using …\nUnmaps the code page. This invalidates all the function …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nTrait definitions of various instructions.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nConsume the assembler and get the emitted code.\nCreate a new <code>x64</code> jit assembler.\nCreate a new <code>unbound</code> Label.\nCreate a new Runtime.\nEmit a <code>nop</code> instruction.\nEmit a <code>ret</code> instruction.\nCreate a new Runtime which also generates static perf …\nTrait for <code>add</code> instruction kinds.\nTrait for <code>call</code> instruction kinds.\nTrait for <code>cmovnz</code> instruction kinds.\nTrait for <code>cmovz</code> instruction kinds.\nTrait for <code>cmp</code> instruction kinds.\nTrait for <code>dec</code> instruction kinds.\nTrait for <code>inc</code> instruction kinds.\nTrait for <code>jmp</code> instruction kinds.\nTrait for <code>jnz</code> instruction kinds.\nTrait for <code>jz</code> instruction kinds.\nTrait for <code>mov</code> instruction kinds.\nTrait for <code>pop</code> instruction kinds.\nTrait for <code>push</code> instruction kinds.\nTrait for <code>sub</code> instruction kinds.\nTrait for <code>test</code> instruction kinds.\nTrait for <code>xor</code> instruction kinds.\nEmit an add instruction.\nEmit a call instruction.\nEmit a (conditional) move if not zero instruction.\nEmit a (conditional) move if zero instruction.\nEmit a compare instruction.\nEmit a decrement instruction.\nEmit a increment instruction.\nEmit an unconditional jump instruction.\nEmit a conditional jump if not zero instruction (<code>ZF = 0</code>).\nEmit a conditional jump if zero instruction (<code>ZF = 1</code>).\nEmit an move instruction.\nEmit a pop instruction.\nEmit a push instruction.\nEmit an sub instruction.\nEmit a logical compare instruction.\nEmit a xor instruction.") \ No newline at end of file
+searchState.loadedDescShard("juicebox_asm", 0, "A simple <code>x64</code> jit assembler with a minimal runtime to …\n<code>x64</code> jit assembler.\nType representing a 16 bit immediate.\nType representing a 32 bit immediate.\nType representing a 64 bit immediate.\nType representing an 8 bit immediate.\nA label which is used as target for jump instructions.\nA memory operand with <code>word</code> size (16 bit).\nA memory operand with <code>dword</code> size (32 bit).\nA memory operand with <code>qword</code> size (64 bit).\nA memory operand with <code>byte</code> size (8 bit).\nDefinition of 16 bit registers.\nDefinition of 32 bit registers.\nDefinition of 64 bit registers.\nDefinition of 8 bit registers.\nA simple <code>mmap</code>ed runtime with executable pages.\nAdd the block of <code>code</code> to the runtime and a get function …\nBind the Label to the current location.\nDisassemble the code currently added to the runtime, using …\nDisassemble the code currently added to the runtime, using …\nUnmaps the code page. This invalidates all the function …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>indirect</code> addressing mode. For …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>base + index</code> addressing mode. …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nCreate a memory operand with <code>indirect + displacement</code> …\nTrait definitions of various instructions.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nConsume the assembler and get the emitted code.\nCreate a new <code>x64</code> jit assembler.\nCreate a new <code>unbound</code> Label.\nCreate a new Runtime.\nEmit a <code>nop</code> instruction.\nEmit a <code>ret</code> instruction.\nCreate a new Runtime which also generates static perf …\nTrait for <code>add</code> instruction kinds.\nTrait for <code>call</code> instruction kinds.\nTrait for <code>cmovnz</code> instruction kinds.\nTrait for <code>cmovz</code> instruction kinds.\nTrait for <code>cmp</code> instruction kinds.\nTrait for <code>dec</code> instruction kinds.\nTrait for <code>inc</code> instruction kinds.\nTrait for <code>jmp</code> instruction kinds.\nTrait for <code>jnz</code> instruction kinds.\nTrait for <code>jz</code> instruction kinds.\nTrait for <code>mov</code> instruction kinds.\nTrait for <code>pop</code> instruction kinds.\nTrait for <code>push</code> instruction kinds.\nTrait for <code>sub</code> instruction kinds.\nTrait for <code>test</code> instruction kinds.\nTrait for <code>xor</code> instruction kinds.\nEmit an add instruction.\nEmit a call instruction.\nEmit a (conditional) move if not zero instruction.\nEmit a (conditional) move if zero instruction.\nEmit a compare instruction.\nEmit a decrement instruction.\nEmit a increment instruction.\nEmit an unconditional jump instruction.\nEmit a conditional jump if not zero instruction (<code>ZF = 0</code>).\nEmit a conditional jump if zero instruction (<code>ZF = 1</code>).\nEmit an move instruction.\nEmit a pop instruction.\nEmit a push instruction.\nEmit an sub instruction.\nEmit a logical compare instruction.\nEmit a xor instruction.") \ No newline at end of file
diff --git a/src-files.js b/src-files.js
index d7b79c1..fef9042 100644
--- a/src-files.js
+++ b/src-files.js
@@ -1,3 +1,3 @@
-var srcIndex = new Map(JSON.parse('[["add",["",[],["add.rs"]]],["bf",["",[],["bf.rs"]]],["fib",["",[],["fib.rs"]]],["juicebox_asm",["",[["insn",[],["add.rs","call.rs","cmovnz.rs","cmovz.rs","cmp.rs","dec.rs","inc.rs","jmp.rs","jnz.rs","jz.rs","mov.rs","nop.rs","pop.rs","push.rs","ret.rs","sub.rs","test.rs","xor.rs"]]],["asm.rs","imm.rs","insn.rs","label.rs","lib.rs","mem.rs","reg.rs","rt.rs"]]],["tiny_vm",["",[],["tiny_vm.rs"]]]]'));
+var srcIndex = new Map(JSON.parse('[["add",["",[],["add.rs"]]],["bf",["",[],["bf.rs"]]],["fib",["",[],["fib.rs"]]],["juicebox_asm",["",[["insn",[],["add.rs","call.rs","cmovnz.rs","cmovz.rs","cmp.rs","dec.rs","inc.rs","jmp.rs","jnz.rs","jz.rs","mov.rs","nop.rs","pop.rs","push.rs","ret.rs","sub.rs","test.rs","xor.rs"]]],["asm.rs","disasm.rs","imm.rs","insn.rs","label.rs","lib.rs","mem.rs","reg.rs","rt.rs"]]],["tiny_vm",["",[],["tiny_vm.rs"]]]]'));
createSrcSidebar();
-//{"start":36,"fragment_lengths":[26,25,27,283,35]} \ No newline at end of file
+//{"start":36,"fragment_lengths":[26,25,27,295,35]} \ No newline at end of file
diff --git a/src/juicebox_asm/asm.rs.html b/src/juicebox_asm/asm.rs.html
index ebc7c4a..7013bab 100644
--- a/src/juicebox_asm/asm.rs.html
+++ b/src/juicebox_asm/asm.rs.html
@@ -426,7 +426,20 @@
<a href="#425" id="425">425</a>
<a href="#426" id="426">426</a>
<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a></pre></div><pre class="rust"><code><span class="doccomment">//! The `x64` jit assembler.
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a></pre></div><pre class="rust"><code><span class="doccomment">//! The `x64` jit assembler.
</span><span class="kw">use </span><span class="kw">crate</span>::imm::Imm;
<span class="kw">use </span><span class="kw">crate</span>::mem::{AddrMode, Mem, Mem16, Mem32, Mem64, Mem8};
@@ -470,6 +483,19 @@
<span class="self">self</span>.buf
}
+ <span class="doccomment">/// Disassemble the code currently added to the runtime, using
+ /// [`ndisasm`](https://nasm.us/index.php) and print it to _stdout_. If
+ /// `ndisasm` is not available on the system this prints a warning and
+ /// becomes a nop.
+ ///
+ /// # Panics
+ ///
+ /// Panics if anything goes wrong with spawning, writing to or reading from
+ /// the `ndisasm` child process.
+ </span><span class="kw">pub fn </span>disasm(<span class="kw-2">&amp;</span><span class="self">self</span>) {
+ <span class="kw">crate</span>::disasm::disasm(<span class="kw-2">&amp;</span><span class="self">self</span>.buf);
+ }
+
<span class="doccomment">/// Emit a slice of bytes.
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>emit(<span class="kw-2">&amp;mut </span><span class="self">self</span>, bytes: <span class="kw-2">&amp;</span>[u8]) {
<span class="self">self</span>.buf.extend_from_slice(bytes);
diff --git a/src/juicebox_asm/disasm.rs.html b/src/juicebox_asm/disasm.rs.html
new file mode 100644
index 0000000..7532d9a
--- /dev/null
+++ b/src/juicebox_asm/disasm.rs.html
@@ -0,0 +1,103 @@
+<!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="Source of the Rust file `src/disasm.rs`."><title>disasm.rs - source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="juicebox_asm" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../../static.files/src-script-e66d777a5a92e9b2.js"></script><script defer src="../../src-files.js"></script><script defer src="../../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc src"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="src-sidebar-title"><h2>Files</h2></div></nav><div class="sidebar-resizer"></div><main><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1><div class="sub-heading">juicebox_asm/</div>disasm.rs</h1><rustdoc-toolbar></rustdoc-toolbar></div><div class="example-wrap"><div data-nosnippet><pre class="src-line-numbers">
+<a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a></pre></div><pre class="rust"><code><span class="kw">use </span>std::io::{ErrorKind, Write};
+<span class="kw">use </span>std::process::{Command, Stdio};
+
+<span class="doccomment">/// Disassemble the code currently added to the runtime, using
+/// [`ndisasm`](https://nasm.us/index.php) and print it to _stdout_. If
+/// `ndisasm` is not available on the system this prints a warning and
+/// becomes a nop.
+///
+/// # Panics
+///
+/// Panics if anything goes wrong with spawning, writing to or reading from
+/// the `ndisasm` child process.
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>disasm&lt;T: AsRef&lt;[u8]&gt;&gt;(code: T) {
+ <span class="kw">let </span>code = code.as_ref();
+
+ <span class="comment">// Create ndisasm process, which expects input on stdin.
+ </span><span class="kw">let </span><span class="kw-2">mut </span>child = <span class="kw">match </span>Command::new(<span class="string">"ndisasm"</span>)
+ .args([<span class="string">"-b64"</span>, <span class="string">"-"</span>])
+ .stdin(Stdio::piped())
+ .stdout(Stdio::piped())
+ .spawn()
+ {
+ <span class="prelude-val">Ok</span>(child) =&gt; child,
+ <span class="prelude-val">Err</span>(err) <span class="kw">if </span>err.kind() == ErrorKind::NotFound =&gt; {
+ <span class="macro">println!</span>(<span class="string">"disasm: skipping, ndisasm not found"</span>);
+ <span class="kw">return</span>;
+ }
+ <span class="prelude-val">Err</span>(err) =&gt; {
+ <span class="macro">panic!</span>(<span class="string">"{:?}"</span>, err);
+ }
+ };
+
+ <span class="comment">// Write code to stdin of ndisasm.
+ </span>child
+ .stdin
+ .take()
+ .expect(<span class="string">"failed to take stdin"</span>)
+ .write_all(code)
+ .expect(<span class="string">"failed to write bytes to stdin"</span>);
+
+ <span class="comment">// Wait for output from ndisasm and print to stdout.
+ </span><span class="macro">println!</span>(
+ <span class="string">"{}"</span>,
+ String::from_utf8_lossy(
+ <span class="kw-2">&amp;</span>child
+ .wait_with_output()
+ .expect(<span class="string">"failed to get stdout"</span>)
+ .stdout
+ )
+ );
+}
+</code></pre></div></section></main></body></html> \ No newline at end of file
diff --git a/src/juicebox_asm/lib.rs.html b/src/juicebox_asm/lib.rs.html
index 4b32e80..3cc3369 100644
--- a/src/juicebox_asm/lib.rs.html
+++ b/src/juicebox_asm/lib.rs.html
@@ -88,7 +88,8 @@
<a href="#87" id="87">87</a>
<a href="#88" id="88">88</a>
<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a></pre></div><pre class="rust"><code><span class="doccomment">//! A simple `x64` jit assembler with a minimal runtime to execute emitted code for fun.
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a></pre></div><pre class="rust"><code><span class="doccomment">//! A simple `x64` jit assembler with a minimal runtime to execute emitted code for fun.
//!
//! The following is an fibonacci example implementation.
//! ```rust
@@ -164,6 +165,7 @@
//! ```
</span><span class="kw">mod </span>asm;
+<span class="kw">mod </span>disasm;
<span class="kw">mod </span>imm;
<span class="kw">mod </span>label;
<span class="kw">mod </span>mem;
diff --git a/src/juicebox_asm/rt.rs.html b/src/juicebox_asm/rt.rs.html
index d138a8e..0bef785 100644
--- a/src/juicebox_asm/rt.rs.html
+++ b/src/juicebox_asm/rt.rs.html
@@ -262,44 +262,7 @@
<a href="#261" id="261">261</a>
<a href="#262" id="262">262</a>
<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a></pre></div><pre class="rust"><code><span class="doccomment">//! Simple `mmap`ed runtime.
+<a href="#264" id="264">264</a></pre></div><pre class="rust"><code><span class="doccomment">//! Simple `mmap`ed runtime.
//!
//! This runtime supports adding code to executable pages and turn the added code into user
//! specified function pointer.
@@ -468,44 +431,7 @@
/// the `ndisasm` child process.
</span><span class="kw">pub fn </span>disasm(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="macro">assert!</span>(<span class="self">self</span>.idx &lt;= <span class="self">self</span>.len);
- <span class="kw">let </span>code = <span class="kw">unsafe </span>{ core::slice::from_raw_parts(<span class="self">self</span>.buf, <span class="self">self</span>.idx) };
-
- <span class="comment">// Create ndisasm process, which expects input on stdin.
- </span><span class="kw">let </span><span class="kw-2">mut </span>child = <span class="kw">match </span>std::process::Command::new(<span class="string">"ndisasm"</span>)
- .args([<span class="string">"-b64"</span>, <span class="string">"-"</span>])
- .stdin(std::process::Stdio::piped())
- .stdout(std::process::Stdio::piped())
- .spawn()
- {
- <span class="prelude-val">Ok</span>(child) =&gt; child,
- <span class="prelude-val">Err</span>(err) <span class="kw">if </span>err.kind() == std::io::ErrorKind::NotFound =&gt; {
- <span class="macro">println!</span>(<span class="string">"Runtime::disasm: ndisasm not found, skipping!"</span>);
- <span class="kw">return</span>;
- }
- <span class="prelude-val">Err</span>(err) =&gt; {
- <span class="macro">panic!</span>(<span class="string">"{:?}"</span>, err);
- }
- };
-
- <span class="comment">// Write code to stdin of ndisasm.
- </span><span class="kw">use </span>std::io::Write;
- child
- .stdin
- .take()
- .expect(<span class="string">"failed to take stdin"</span>)
- .write_all(code)
- .expect(<span class="string">"failed to write bytes to stdin"</span>);
-
- <span class="comment">// Wait for output from ndisasm and print to stdout.
- </span><span class="macro">println!</span>(
- <span class="string">"{}"</span>,
- String::from_utf8_lossy(
- <span class="kw-2">&amp;</span>child
- .wait_with_output()
- .expect(<span class="string">"failed to get stdout"</span>)
- .stdout
- )
- );
+ <span class="kw">crate</span>::disasm::disasm(<span class="kw">unsafe </span>{ core::slice::from_raw_parts(<span class="self">self</span>.buf, <span class="self">self</span>.idx) });
}
<span class="doccomment">/// Reinterpret the block of code pointed to by `fn_start` as `F`.