Lines 43-53
Link Here
|
43 |
= "llvm_ee_run_static_dtors" |
43 |
= "llvm_ee_run_static_dtors" |
44 |
external data_layout : llexecutionengine -> Llvm_target.DataLayout.t |
44 |
external data_layout : llexecutionengine -> Llvm_target.DataLayout.t |
45 |
= "llvm_ee_get_data_layout" |
45 |
= "llvm_ee_get_data_layout" |
46 |
external add_global_mapping_ : Llvm.llvalue -> int64 -> llexecutionengine -> unit |
46 |
external add_global_mapping_ : Llvm.llvalue -> nativeint -> llexecutionengine -> unit |
47 |
= "llvm_ee_add_global_mapping" |
47 |
= "llvm_ee_add_global_mapping" |
48 |
external get_global_value_address_ : string -> llexecutionengine -> int64 |
48 |
external get_global_value_address_ : string -> llexecutionengine -> nativeint |
49 |
= "llvm_ee_get_global_value_address" |
49 |
= "llvm_ee_get_global_value_address" |
50 |
external get_function_address_ : string -> llexecutionengine -> int64 |
50 |
external get_function_address_ : string -> llexecutionengine -> nativeint |
51 |
= "llvm_ee_get_function_address" |
51 |
= "llvm_ee_get_function_address" |
52 |
|
52 |
|
53 |
let add_global_mapping llval ptr ee = |
53 |
let add_global_mapping llval ptr ee = |
Lines 55-68
Link Here
|
55 |
|
55 |
|
56 |
let get_global_value_address name typ ee = |
56 |
let get_global_value_address name typ ee = |
57 |
let vptr = get_global_value_address_ name ee in |
57 |
let vptr = get_global_value_address_ name ee in |
58 |
if Int64.to_int vptr <> 0 then |
58 |
if Nativeint.to_int vptr <> 0 then |
59 |
let open Ctypes in !@ (coerce (ptr void) (ptr typ) (ptr_of_raw_address vptr)) |
59 |
let open Ctypes in !@ (coerce (ptr void) (ptr typ) (ptr_of_raw_address vptr)) |
60 |
else |
60 |
else |
61 |
raise (Error ("Value " ^ name ^ " not found")) |
61 |
raise (Error ("Value " ^ name ^ " not found")) |
62 |
|
62 |
|
63 |
let get_function_address name typ ee = |
63 |
let get_function_address name typ ee = |
64 |
let fptr = get_function_address_ name ee in |
64 |
let fptr = get_function_address_ name ee in |
65 |
if Int64.to_int fptr <> 0 then |
65 |
if Nativeint.to_int fptr <> 0 then |
66 |
let open Ctypes in coerce (ptr void) typ (ptr_of_raw_address fptr) |
66 |
let open Ctypes in coerce (ptr void) typ (ptr_of_raw_address fptr) |
67 |
else |
67 |
else |
68 |
raise (Error ("Function " ^ name ^ " not found")) |
68 |
raise (Error ("Function " ^ name ^ " not found")) |