@@ -560,7 +560,7 @@ impl<'b, 'tcx> CrateContext<'b, 'tcx> {
560560 self . local . builder . b
561561 }
562562
563- pub fn get_intrinsic ( & self , key : & & ' static str ) -> ValueRef {
563+ pub fn get_intrinsic ( & self , key : & str ) -> ValueRef {
564564 if let Some ( v) = self . intrinsics ( ) . borrow ( ) . get ( key) . cloned ( ) {
565565 return v;
566566 }
@@ -791,18 +791,18 @@ impl<'b, 'tcx> CrateContext<'b, 'tcx> {
791791}
792792
793793/// 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 > {
795795 macro_rules! ifn {
796796 ( $name: expr, fn ( ) -> $ret: expr) => (
797- if * key == $name {
797+ if key == $name {
798798 let f = declare:: declare_cfn( ccx, $name, Type :: func( & [ ] , & $ret) ,
799799 ccx. tcx( ) . mk_nil( ) ) ;
800800 ccx. intrinsics( ) . borrow_mut( ) . insert( $name, f. clone( ) ) ;
801801 return Some ( f) ;
802802 }
803803 ) ;
804804 ( $name: expr, fn ( $( $arg: expr) ,* ) -> $ret: expr) => (
805- if * key == $name {
805+ if key == $name {
806806 let f = declare:: declare_cfn( ccx, $name, Type :: func( & [ $( $arg) ,* ] , & $ret) ,
807807 ccx. tcx( ) . mk_nil( ) ) ;
808808 ccx. intrinsics( ) . borrow_mut( ) . insert( $name, f. clone( ) ) ;
@@ -824,10 +824,13 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
824824 let t_f32 = Type :: f32 ( ccx) ;
825825 let t_f64 = Type :: f64 ( ccx) ;
826826
827+ ifn ! ( "llvm.memcpy.p0i8.p0i8.i16" , fn ( i8p, i8p, t_i16, t_i32, i1) -> void) ;
827828 ifn ! ( "llvm.memcpy.p0i8.p0i8.i32" , fn ( i8p, i8p, t_i32, t_i32, i1) -> void) ;
828829 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) ;
829831 ifn ! ( "llvm.memmove.p0i8.p0i8.i32" , fn ( i8p, i8p, t_i32, t_i32, i1) -> void) ;
830832 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) ;
831834 ifn ! ( "llvm.memset.p0i8.i32" , fn ( i8p, t_i8, t_i32, t_i32, i1) -> void) ;
832835 ifn ! ( "llvm.memset.p0i8.i64" , fn ( i8p, t_i8, t_i64, t_i32, i1) -> void) ;
833836
@@ -942,7 +945,7 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
942945 if unsafe { llvm:: LLVMVersionMinor ( ) >= $llvm_version } {
943946 // The `if key == $name` is already in ifn!
944947 ifn!( $name, fn ( $( $arg) ,* ) -> void) ;
945- } else if * key == $name {
948+ } else if key == $name {
946949 let f = declare:: declare_cfn( ccx, stringify!( $cname) ,
947950 Type :: func( & [ $( $arg) ,* ] , & void) ,
948951 ccx. tcx( ) . mk_nil( ) ) ;
@@ -965,7 +968,7 @@ fn declare_intrinsic(ccx: &CrateContext, key: & &'static str) -> Option<ValueRef
965968 if unsafe { llvm:: LLVMVersionMinor ( ) >= $llvm_version } {
966969 // The `if key == $name` is already in ifn!
967970 ifn!( $name, fn ( $( $arg) ,* ) -> $ret) ;
968- } else if * key == $name {
971+ } else if key == $name {
969972 let f = declare:: declare_cfn( ccx, stringify!( $cname) ,
970973 Type :: func( & [ $( $arg) ,* ] , & $ret) ,
971974 ccx. tcx( ) . mk_nil( ) ) ;
0 commit comments