Crate jit [−] [src]
This crate wraps LibJIT in an idiomatic style. For example, here's a quick example which makes a multiply function using LibJIT:
extern crate jit; #[no_link] #[macro_use] extern crate jit_macros; use jit::*; fn main() { // make a new context to make functions on let mut ctx = Context::<()>::new(); jit_func!(&mut ctx, func, fn(x: isize, y: isize) -> isize { func.insn_return(x * y); }, { assert_eq!(func(4, 5), 20); assert_eq!(func(-2, -4), 8); }); }
Modules
| flags |
Call flags to a function |
| kind |
The integer representation of a type |
| typecs |
Type constants |
Structs
| Block |
Represents a single LibJIT block |
| CallFlags | |
| CompiledFunction |
A function which has already been compiled from an |
| Context |
Holds all of the functions you have built and compiled. There can be multiple, but normally there is only one. |
| Field |
A single field of a struct |
| Fields |
Iterates through all the fields of a struct |
| Func |
A function |
| Instruction |
Represents a single LibJIT instruction |
| InstructionIter | |
| Label |
A label in the code that can be branched to in instructions |
| Needed |
An ELF dependency iterator |
| Params |
Iterator through all the arguments a function takes |
| ReadElf |
An ELF binary reader |
| ReadElfError |
An error from trying to open the ELF, including the filename |
| TaggedType | |
| Ty |
An object that represents a native system type |
| Type |
An owned object that represents a native system type. |
| TypeKind | |
| UncompiledFunction |
A function which has not been compiled yet, so it can have instructions added to it. |
| Val |
Vals form the backbone of the storage system in |
| WriteElf |
An ELF binary reader |
Enums
| Abi |
A platform's application binary interface |
| ReadElfErrorCode |
An error from trying to open the ELF |
Traits
| Compile |
A type that can be compiled into a LibJIT representation |
Functions
| get |
Get the Rust type given as a type descriptor |
| init |
Initialise the library and prepare for operations |
| supports_threads |
Check if the JIT supports theads |
| supports_virtual_memory |
Check if the JIT supports virtual memory |
| uses_interpreter |
Check if the JIT is using a fallback interpreter |
Type Definitions
| CowType |
A copy-on-write type |
| StaticType |
A static type |