1
2use gnu_libjit::{Abi, Context, Label};
3fn main() {
4 let mut context = Context::new();
5 context.build_start();
6
7
8 let float_type = Context::float64_type();
9 let mut func = context.function(Abi::Cdecl, float_type, vec![float_type]).unwrap();
10
11 let is_four_result = func.create_float64_constant(1.0);
14 let not_four_result = func.create_float64_constant(0.0);
15
16 let x = func.arg(0).unwrap();
17 let four = func.create_float64_constant(4.0);
18 let mut label = Label::new();
19 let eq_to_4 = func.insn_eq(&x, &four);
20 func.insn_branch_if(&eq_to_4, &mut label);
21 func.insn_return(¬_four_result);
22 func.insn_label(&mut label);
23 func.insn_return(&is_four_result);
24 func.compile();
25 context.build_end();
26 let result: extern "C" fn(f64) -> f64 = func.to_closure();
27 println!("{}", result(4.0));
28}