@@ -875,7 +875,6 @@ fn codegen_regular_intrinsic_call<'tcx>(
875875            let  ptr = ptr. load_scalar ( fx) ; 
876876
877877            let  ty = generic_args. type_at ( 0 ) ; 
878-             let  _ord = generic_args. const_at ( 1 ) . to_value ( ) ;  // FIXME: forward this to cranelift once they support that 
879878            match  ty. kind ( )  { 
880879                ty:: Uint ( UintTy :: U128 )  | ty:: Int ( IntTy :: I128 )  => { 
881880                    // FIXME implement 128bit atomics 
@@ -906,7 +905,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
906905            let  val = CValue :: by_val ( val,  fx. layout_of ( ty) ) ; 
907906            ret. write_cvalue ( fx,  val) ; 
908907        } 
909-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_store" )  => { 
908+         sym :: atomic_store => { 
910909            intrinsic_args ! ( fx,  args => ( ptr,  val) ;  intrinsic) ; 
911910            let  ptr = ptr. load_scalar ( fx) ; 
912911
@@ -939,7 +938,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
939938
940939            fx. bcx . ins ( ) . atomic_store ( MemFlags :: trusted ( ) ,  val,  ptr) ; 
941940        } 
942-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_xchg" )  => { 
941+         sym :: atomic_xchg => { 
943942            intrinsic_args ! ( fx,  args => ( ptr,  new) ;  intrinsic) ; 
944943            let  ptr = ptr. load_scalar ( fx) ; 
945944
@@ -960,8 +959,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
960959            let  old = CValue :: by_val ( old,  layout) ; 
961960            ret. write_cvalue ( fx,  old) ; 
962961        } 
963-         _ if  intrinsic. as_str ( ) . starts_with ( "atomic_cxchg" )  => { 
964-             // both atomic_cxchg_* and atomic_cxchgweak_* 
962+         sym:: atomic_cxchg | sym:: atomic_cxchgweak => { 
965963            intrinsic_args ! ( fx,  args => ( ptr,  test_old,  new) ;  intrinsic) ; 
966964            let  ptr = ptr. load_scalar ( fx) ; 
967965
@@ -984,7 +982,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
984982            ret. write_cvalue ( fx,  ret_val) 
985983        } 
986984
987-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_xadd" )  => { 
985+         sym :: atomic_xadd => { 
988986            intrinsic_args ! ( fx,  args => ( ptr,  amount) ;  intrinsic) ; 
989987            let  ptr = ptr. load_scalar ( fx) ; 
990988
@@ -1006,7 +1004,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10061004            let  old = CValue :: by_val ( old,  layout) ; 
10071005            ret. write_cvalue ( fx,  old) ; 
10081006        } 
1009-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_xsub" )  => { 
1007+         sym :: atomic_xsub => { 
10101008            intrinsic_args ! ( fx,  args => ( ptr,  amount) ;  intrinsic) ; 
10111009            let  ptr = ptr. load_scalar ( fx) ; 
10121010
@@ -1028,7 +1026,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10281026            let  old = CValue :: by_val ( old,  layout) ; 
10291027            ret. write_cvalue ( fx,  old) ; 
10301028        } 
1031-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_and" )  => { 
1029+         sym :: atomic_and => { 
10321030            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
10331031            let  ptr = ptr. load_scalar ( fx) ; 
10341032
@@ -1049,7 +1047,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10491047            let  old = CValue :: by_val ( old,  layout) ; 
10501048            ret. write_cvalue ( fx,  old) ; 
10511049        } 
1052-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_or" )  => { 
1050+         sym :: atomic_or => { 
10531051            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
10541052            let  ptr = ptr. load_scalar ( fx) ; 
10551053
@@ -1070,7 +1068,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10701068            let  old = CValue :: by_val ( old,  layout) ; 
10711069            ret. write_cvalue ( fx,  old) ; 
10721070        } 
1073-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_xor" )  => { 
1071+         sym :: atomic_xor => { 
10741072            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
10751073            let  ptr = ptr. load_scalar ( fx) ; 
10761074
@@ -1091,7 +1089,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10911089            let  old = CValue :: by_val ( old,  layout) ; 
10921090            ret. write_cvalue ( fx,  old) ; 
10931091        } 
1094-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_nand" )  => { 
1092+         sym :: atomic_nand => { 
10951093            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
10961094            let  ptr = ptr. load_scalar ( fx) ; 
10971095
@@ -1112,7 +1110,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
11121110            let  old = CValue :: by_val ( old,  layout) ; 
11131111            ret. write_cvalue ( fx,  old) ; 
11141112        } 
1115-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_max" )  => { 
1113+         sym :: atomic_max => { 
11161114            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
11171115            let  ptr = ptr. load_scalar ( fx) ; 
11181116
@@ -1133,7 +1131,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
11331131            let  old = CValue :: by_val ( old,  layout) ; 
11341132            ret. write_cvalue ( fx,  old) ; 
11351133        } 
1136-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_umax" )  => { 
1134+         sym :: atomic_umax => { 
11371135            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
11381136            let  ptr = ptr. load_scalar ( fx) ; 
11391137
@@ -1154,7 +1152,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
11541152            let  old = CValue :: by_val ( old,  layout) ; 
11551153            ret. write_cvalue ( fx,  old) ; 
11561154        } 
1157-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_min" )  => { 
1155+         sym :: atomic_min => { 
11581156            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
11591157            let  ptr = ptr. load_scalar ( fx) ; 
11601158
@@ -1175,7 +1173,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
11751173            let  old = CValue :: by_val ( old,  layout) ; 
11761174            ret. write_cvalue ( fx,  old) ; 
11771175        } 
1178-         _  if  intrinsic . as_str ( ) . starts_with ( " atomic_umin" )  => { 
1176+         sym :: atomic_umin => { 
11791177            intrinsic_args ! ( fx,  args => ( ptr,  src) ;  intrinsic) ; 
11801178            let  ptr = ptr. load_scalar ( fx) ; 
11811179
0 commit comments