mult/
mult.rs

1use gnu_libjit::{Abi, Context};
2
3fn main() {
4    let mut context = Context::new();
5    context.build_start();
6
7
8    let int_type = Context::int_type();
9    let params = vec![int_type, int_type, int_type];
10    let mut func = context.function(Abi::Cdecl, int_type, params).unwrap();
11
12    let x = func.arg(0).unwrap();
13    let y = func.arg(1).unwrap();
14    let z = func.arg(2).unwrap();
15    let temp1 = func.insn_mult(&x, &y);
16    let temp2 = func.insn_add(&temp1, &z);
17    func.insn_return(&temp2);
18    func.compile();
19    context.build_end();
20
21    let result: extern "C" fn(i32,i32,i32) -> i32 = func.to_closure();
22    println!("3*5+2 = {}", result(3,5,2))
23}