@@ -560,7 +560,7 @@ impl<'b, 'tcx> CrateContext<'b, 'tcx> {
560
560
self . local . builder . b
561
561
}
562
562
563
- pub fn get_intrinsic ( & self , key : & & ' static str ) -> ValueRef {
563
+ pub fn get_intrinsic ( & self , key : & str ) -> ValueRef {
564
564
if let Some ( v) = self . intrinsics ( ) . borrow ( ) . get ( key) . cloned ( ) {
565
565
return v;
566
566
}
@@ -791,18 +791,18 @@ impl<'b, 'tcx> CrateContext<'b, 'tcx> {
791
791
}
792
792
793
793
/// Declare any llvm intrinsics that you might need
794
- fn declare_intrinsic ( ccx : & CrateContext , key : & & ' static str ) -> Option < ValueRef > {
794
+ fn declare_intrinsic ( ccx : & CrateContext , key : & str ) -> Option < ValueRef > {
795
795
macro_rules! ifn {
796
796
( $name: expr, fn ( ) -> $ret: expr) => (
797
- if * key == $name {
797
+ if key == $name {
798
798
let f = declare:: declare_cfn( ccx, $name, Type :: func( & [ ] , & $ret) ,
799
799
ccx. tcx( ) . mk_nil( ) ) ;
800
800
ccx. intrinsics( ) . borrow_mut( ) . insert( $name, f. clone( ) ) ;
801
801
return Some ( f) ;
802
802
}
803
803
) ;
804
804
( $name: expr, fn ( $( $arg: expr) ,* ) -> $ret: expr) => (
805
- if * key == $name {
805
+ if key == $name {
806
806
let f = declare:: declare_cfn( ccx, $name, Type :: func( & [ $( $arg) ,* ] , & $ret) ,
807
807
ccx. tcx( ) . mk_nil( ) ) ;
808
808
ccx. intrinsics( ) . borrow_mut( ) . insert( $name, f. clone( ) ) ;
@@ -824,10 +824,13 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
824
824
let t_f32 = Type :: f32 ( ccx) ;
825
825
let t_f64 = Type :: f64 ( ccx) ;
826
826
827
+ ifn ! ( "llvm.memcpy.p0i8.p0i8.i16" , fn ( i8p, i8p, t_i16, t_i32, i1) -> void) ;
827
828
ifn ! ( "llvm.memcpy.p0i8.p0i8.i32" , fn ( i8p, i8p, t_i32, t_i32, i1) -> void) ;
828
829
ifn ! ( "llvm.memcpy.p0i8.p0i8.i64" , fn ( i8p, i8p, t_i64, t_i32, i1) -> void) ;
830
+ ifn ! ( "llvm.memmove.p0i8.p0i8.i16" , fn ( i8p, i8p, t_i16, t_i32, i1) -> void) ;
829
831
ifn ! ( "llvm.memmove.p0i8.p0i8.i32" , fn ( i8p, i8p, t_i32, t_i32, i1) -> void) ;
830
832
ifn ! ( "llvm.memmove.p0i8.p0i8.i64" , fn ( i8p, i8p, t_i64, t_i32, i1) -> void) ;
833
+ ifn ! ( "llvm.memset.p0i8.i16" , fn ( i8p, t_i8, t_i16, t_i32, i1) -> void) ;
831
834
ifn ! ( "llvm.memset.p0i8.i32" , fn ( i8p, t_i8, t_i32, t_i32, i1) -> void) ;
832
835
ifn ! ( "llvm.memset.p0i8.i64" , fn ( i8p, t_i8, t_i64, t_i32, i1) -> void) ;
833
836
@@ -942,7 +945,7 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
942
945
if unsafe { llvm:: LLVMVersionMinor ( ) >= $llvm_version } {
943
946
// The `if key == $name` is already in ifn!
944
947
ifn!( $name, fn ( $( $arg) ,* ) -> void) ;
945
- } else if * key == $name {
948
+ } else if key == $name {
946
949
let f = declare:: declare_cfn( ccx, stringify!( $cname) ,
947
950
Type :: func( & [ $( $arg) ,* ] , & void) ,
948
951
ccx. tcx( ) . mk_nil( ) ) ;
@@ -965,7 +968,7 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
965
968
if unsafe { llvm:: LLVMVersionMinor ( ) >= $llvm_version } {
966
969
// The `if key == $name` is already in ifn!
967
970
ifn!( $name, fn ( $( $arg) ,* ) -> $ret) ;
968
- } else if * key == $name {
971
+ } else if key == $name {
969
972
let f = declare:: declare_cfn( ccx, stringify!( $cname) ,
970
973
Type :: func( & [ $( $arg) ,* ] , & $ret) ,
971
974
ccx. tcx( ) . mk_nil( ) ) ;
0 commit comments