CodeGenLib/
lib.rs

1//! CodeGenLib is a rust libary to generate x86-64Bit machine code (like llvm)
2//! 
3//! <h4>Example</h4>
4//! 
5//! ```
6//! use CodeGenLib::{Builder, ArtifactError}
7//! 
8//! pub fn main() -> Result<(), ArtifactError> {
9//!    let mut builder = Builder::new();
10//!
11//!    builder.add_function("call")
12//!     .call("callme")
13//!     .ret_int(1);
14//!    
15//!    builder.build("test.o")?;
16//!    
17//!    Ok(())
18//! }
19//! ```
20//! 
21//! The examples would make a elf file with a function named call wich just calls 
22//! a function named callme and then returns a 1  
23
24#![allow(non_snake_case)]
25
26pub mod x86;
27pub mod opt;
28pub mod error;
29pub mod arch;
30#[cfg(feature = "jit")]
31pub mod jit;
32
33pub use x86::*;
34pub use x86::function::Function as Function;
35pub use x86::builder::Builder as Builder;
36pub use x86::mem::AdressManager as AdressManager;
37pub use opt::optimize::Optimize as OptimizeTrait;
38pub use error::Result as Result;
39pub use error::CodeGenLibError as CodeGenLibError;
40pub use arch::def::Arch as Arch;
41
42#[cfg(feature = "jit")]
43pub use jit::typed::JitRuntime as Jit;
44
45/// ArtifactError exportet from the faerie crate
46pub use faerie::ArtifactError as ArtifactError;