@@ -875,7 +875,6 @@ fn codegen_regular_intrinsic_call<'tcx>(
875
875
let ptr = ptr. load_scalar ( fx) ;
876
876
877
877
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
879
878
match ty. kind ( ) {
880
879
ty:: Uint ( UintTy :: U128 ) | ty:: Int ( IntTy :: I128 ) => {
881
880
// FIXME implement 128bit atomics
@@ -906,7 +905,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
906
905
let val = CValue :: by_val ( val, fx. layout_of ( ty) ) ;
907
906
ret. write_cvalue ( fx, val) ;
908
907
}
909
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_store" ) => {
908
+ sym :: atomic_store => {
910
909
intrinsic_args ! ( fx, args => ( ptr, val) ; intrinsic) ;
911
910
let ptr = ptr. load_scalar ( fx) ;
912
911
@@ -939,7 +938,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
939
938
940
939
fx. bcx . ins ( ) . atomic_store ( MemFlags :: trusted ( ) , val, ptr) ;
941
940
}
942
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_xchg" ) => {
941
+ sym :: atomic_xchg => {
943
942
intrinsic_args ! ( fx, args => ( ptr, new) ; intrinsic) ;
944
943
let ptr = ptr. load_scalar ( fx) ;
945
944
@@ -960,8 +959,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
960
959
let old = CValue :: by_val ( old, layout) ;
961
960
ret. write_cvalue ( fx, old) ;
962
961
}
963
- _ if intrinsic. as_str ( ) . starts_with ( "atomic_cxchg" ) => {
964
- // both atomic_cxchg_* and atomic_cxchgweak_*
962
+ sym:: atomic_cxchg | sym:: atomic_cxchgweak => {
965
963
intrinsic_args ! ( fx, args => ( ptr, test_old, new) ; intrinsic) ;
966
964
let ptr = ptr. load_scalar ( fx) ;
967
965
@@ -984,7 +982,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
984
982
ret. write_cvalue ( fx, ret_val)
985
983
}
986
984
987
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_xadd" ) => {
985
+ sym :: atomic_xadd => {
988
986
intrinsic_args ! ( fx, args => ( ptr, amount) ; intrinsic) ;
989
987
let ptr = ptr. load_scalar ( fx) ;
990
988
@@ -1006,7 +1004,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1006
1004
let old = CValue :: by_val ( old, layout) ;
1007
1005
ret. write_cvalue ( fx, old) ;
1008
1006
}
1009
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_xsub" ) => {
1007
+ sym :: atomic_xsub => {
1010
1008
intrinsic_args ! ( fx, args => ( ptr, amount) ; intrinsic) ;
1011
1009
let ptr = ptr. load_scalar ( fx) ;
1012
1010
@@ -1028,7 +1026,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1028
1026
let old = CValue :: by_val ( old, layout) ;
1029
1027
ret. write_cvalue ( fx, old) ;
1030
1028
}
1031
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_and" ) => {
1029
+ sym :: atomic_and => {
1032
1030
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1033
1031
let ptr = ptr. load_scalar ( fx) ;
1034
1032
@@ -1049,7 +1047,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1049
1047
let old = CValue :: by_val ( old, layout) ;
1050
1048
ret. write_cvalue ( fx, old) ;
1051
1049
}
1052
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_or" ) => {
1050
+ sym :: atomic_or => {
1053
1051
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1054
1052
let ptr = ptr. load_scalar ( fx) ;
1055
1053
@@ -1070,7 +1068,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1070
1068
let old = CValue :: by_val ( old, layout) ;
1071
1069
ret. write_cvalue ( fx, old) ;
1072
1070
}
1073
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_xor" ) => {
1071
+ sym :: atomic_xor => {
1074
1072
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1075
1073
let ptr = ptr. load_scalar ( fx) ;
1076
1074
@@ -1091,7 +1089,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1091
1089
let old = CValue :: by_val ( old, layout) ;
1092
1090
ret. write_cvalue ( fx, old) ;
1093
1091
}
1094
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_nand" ) => {
1092
+ sym :: atomic_nand => {
1095
1093
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1096
1094
let ptr = ptr. load_scalar ( fx) ;
1097
1095
@@ -1112,7 +1110,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1112
1110
let old = CValue :: by_val ( old, layout) ;
1113
1111
ret. write_cvalue ( fx, old) ;
1114
1112
}
1115
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_max" ) => {
1113
+ sym :: atomic_max => {
1116
1114
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1117
1115
let ptr = ptr. load_scalar ( fx) ;
1118
1116
@@ -1133,7 +1131,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1133
1131
let old = CValue :: by_val ( old, layout) ;
1134
1132
ret. write_cvalue ( fx, old) ;
1135
1133
}
1136
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_umax" ) => {
1134
+ sym :: atomic_umax => {
1137
1135
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1138
1136
let ptr = ptr. load_scalar ( fx) ;
1139
1137
@@ -1154,7 +1152,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1154
1152
let old = CValue :: by_val ( old, layout) ;
1155
1153
ret. write_cvalue ( fx, old) ;
1156
1154
}
1157
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_min" ) => {
1155
+ sym :: atomic_min => {
1158
1156
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1159
1157
let ptr = ptr. load_scalar ( fx) ;
1160
1158
@@ -1175,7 +1173,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1175
1173
let old = CValue :: by_val ( old, layout) ;
1176
1174
ret. write_cvalue ( fx, old) ;
1177
1175
}
1178
- _ if intrinsic . as_str ( ) . starts_with ( " atomic_umin" ) => {
1176
+ sym :: atomic_umin => {
1179
1177
intrinsic_args ! ( fx, args => ( ptr, src) ; intrinsic) ;
1180
1178
let ptr = ptr. load_scalar ( fx) ;
1181
1179
0 commit comments