@@ -6731,6 +6731,12 @@ fn declare_intrinsics(llmod: ModuleRef) -> hashmap[str, ValueRef] {
6731
6731
let T_memset64_args : [ TypeRef ] =
6732
6732
~[ T_ptr ( T_i8 ( ) ) , T_i8 ( ) , T_i64 ( ) , T_i32 ( ) , T_i1 ( ) ] ;
6733
6733
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 ( ) ) ) ;
6734
6740
let memmove32 =
6735
6741
decl_cdecl_fn ( llmod, "llvm.memmove.p0i8.p0i8.i32" ,
6736
6742
T_fn ( T_memmove32_args , T_void ( ) ) ) ;
@@ -6745,6 +6751,8 @@ fn declare_intrinsics(llmod: ModuleRef) -> hashmap[str, ValueRef] {
6745
6751
T_fn ( T_memset64_args , T_void ( ) ) ) ;
6746
6752
let trap = decl_cdecl_fn ( llmod, "llvm.trap" , T_fn ( T_trap_args , T_void ( ) ) ) ;
6747
6753
let intrinsics = new_str_hash[ ValueRef ] ( ) ;
6754
+ intrinsics. insert ( "llvm.gcroot" , gcroot) ;
6755
+ intrinsics. insert ( "llvm.gcread" , gcread) ;
6748
6756
intrinsics. insert ( "llvm.memmove.p0i8.p0i8.i32" , memmove32) ;
6749
6757
intrinsics. insert ( "llvm.memmove.p0i8.p0i8.i64" , memmove64) ;
6750
6758
intrinsics. insert ( "llvm.memset.p0i8.i32" , memset32) ;
0 commit comments