Skip to content

Commit d149490

Browse files
committed
rustc: Declare GC-related intrinsics
1 parent 19424df commit d149490

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/comp/middle/trans.rs

+8
Original file line numberDiff line numberDiff line change
@@ -6731,6 +6731,12 @@ fn declare_intrinsics(llmod: ModuleRef) -> hashmap[str, ValueRef] {
67316731
let T_memset64_args: [TypeRef] =
67326732
~[T_ptr(T_i8()), T_i8(), T_i64(), T_i32(), T_i1()];
67336733
let T_trap_args: [TypeRef] = ~[];
6734+
let gcroot =
6735+
decl_cdecl_fn(llmod, "llvm.gcroot",
6736+
T_fn(~[T_ptr(T_ptr(T_i8())), T_ptr(T_i8())], T_void()));
6737+
let gcread =
6738+
decl_cdecl_fn(llmod, "llvm.gcread",
6739+
T_fn(~[T_ptr(T_i8()), T_ptr(T_ptr(T_i8()))], T_void()));
67346740
let memmove32 =
67356741
decl_cdecl_fn(llmod, "llvm.memmove.p0i8.p0i8.i32",
67366742
T_fn(T_memmove32_args, T_void()));
@@ -6745,6 +6751,8 @@ fn declare_intrinsics(llmod: ModuleRef) -> hashmap[str, ValueRef] {
67456751
T_fn(T_memset64_args, T_void()));
67466752
let trap = decl_cdecl_fn(llmod, "llvm.trap", T_fn(T_trap_args, T_void()));
67476753
let intrinsics = new_str_hash[ValueRef]();
6754+
intrinsics.insert("llvm.gcroot", gcroot);
6755+
intrinsics.insert("llvm.gcread", gcread);
67486756
intrinsics.insert("llvm.memmove.p0i8.p0i8.i32", memmove32);
67496757
intrinsics.insert("llvm.memmove.p0i8.p0i8.i64", memmove64);
67506758
intrinsics.insert("llvm.memset.p0i8.i32", memset32);

0 commit comments

Comments
 (0)