From 130746bc856f5c2eb5672cceb0e1304ee2c95b1e Mon Sep 17 00:00:00 2001 From: johannst Date: Wed, 28 Feb 2024 18:32:44 +0000 Subject: deploy: 7cc72737a0140f5f71e9d83d4f87503eb4c7604f --- juicebox_asm/index.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'juicebox_asm/index.html') diff --git a/juicebox_asm/index.html b/juicebox_asm/index.html index d6639eb..c53f65d 100644 --- a/juicebox_asm/index.html +++ b/juicebox_asm/index.html @@ -1,4 +1,6 @@ -juicebox_asm - Rust

Crate juicebox_asm

source ·
Expand description

A simple x64 jit assembler with a minimal runtime to execute emitted code for fun.

+juicebox_asm - Rust +

Crate juicebox_asm

source ·
Expand description

A simple x64 jit assembler with a minimal runtime to execute emitted code for fun.

The following is an fibonacci example implementation.

use juicebox_asm::{Asm, Reg64, Imm64, Label};
@@ -62,12 +64,12 @@
 
     // Move code into executable page and get function pointer to it.
     let mut rt = Runtime::new();
-    let fib = unsafe { rt.add_code::<extern "C" fn(u64) -> u64>(&asm.into_code()) };
+    let fib = unsafe { rt.add_code::<extern "C" fn(u64) -> u64>(&asm.into_code()) };
 
     for n in 0..15 {
         let fib_jit = fib(n);
-        println!("fib({}) = {}", n, fib_jit);
+        println!("fib({}) = {}", n, fib_jit);
         assert_eq!(fib_jit, fib_rs(n));
     }
 }
-

Modules

  • Trait definitions of various instructions.

Structs

  • x64 jit assembler.
  • Type representing an 8 bit immediate.
  • Type representing a 16 bit immediate.
  • Type representing a 32 bit immediate.
  • Type representing a 64 bit immediate.
  • A label which is used as target for jump instructions.
  • A simple mmaped runtime with executable pages.

Enums

  • Type representing a memory operand.
  • Definition of 8 bit registers.
  • Definition of 16 bit registers.
  • Definition of 32 bit registers.
  • Definition of 64 bit registers.
\ No newline at end of file +

Modules

  • Trait definitions of various instructions.

Structs

  • x64 jit assembler.
  • Type representing an 8 bit immediate.
  • Type representing a 16 bit immediate.
  • Type representing a 32 bit immediate.
  • Type representing a 64 bit immediate.
  • A label which is used as target for jump instructions.
  • A simple mmaped runtime with executable pages.

Enums

  • Type representing a memory operand.
  • Definition of 8 bit registers.
  • Definition of 16 bit registers.
  • Definition of 32 bit registers.
  • Definition of 64 bit registers.
\ No newline at end of file -- cgit v1.2.3