@@ -1102,16 +1102,17 @@ _Py_atomic_memcpy_ptr_store_relaxed(void *dest, void *src, size_t n)
11021102
11031103 // memcpy(dest, src, n);
11041104
1105- // if (dest != src) {
1106- // void **dest_ = (void **)dest;
1107- // void **src_ = (void **)src;
1108- // void **end = dest_ + n / sizeof(void *);
1109-
1110- // for (; dest_ != end; dest_++, src_++) {
1111- // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1112- // memory_order_relaxed);
1113- // }
1114- // }
1105+ if (dest != src ) {
1106+ void * * dest_ = (void * * )dest ;
1107+ void * * src_ = (void * * )src ;
1108+ void * * end = dest_ + n / sizeof (void * );
1109+
1110+ for (; dest_ != end ; dest_ ++ , src_ ++ ) {
1111+ * dest_ = * src_ ;
1112+ // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1113+ // memory_order_relaxed);
1114+ }
1115+ }
11151116
11161117 return dest ;
11171118}
@@ -1126,27 +1127,29 @@ _Py_atomic_memmove_ptr_store_relaxed(void *dest, void *src, size_t n)
11261127
11271128 // memmove(dest, src, n);
11281129
1129- // if (dest < src || dest >= (void *)((char *)src + n)) {
1130- // void **dest_ = (void **)dest;
1131- // void **src_ = (void **)src;
1132- // void **end = dest_ + n / sizeof(void *);
1133-
1134- // for (; dest_ != end; dest_++, src_++) {
1135- // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1136- // memory_order_relaxed);
1137- // }
1138- // }
1139- // else if (dest > src) {
1140- // n = n / sizeof(void *) - 1;
1141- // void **dest_ = (void **)dest + n;
1142- // void **src_ = (void **)src + n;
1143- // void **end = (void **)dest - 1;
1144-
1145- // for (; dest_ != end; dest_--, src_--) {
1146- // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1147- // memory_order_relaxed);
1148- // }
1149- // }
1130+ if (dest < src || dest >= (void * )((char * )src + n )) {
1131+ void * * dest_ = (void * * )dest ;
1132+ void * * src_ = (void * * )src ;
1133+ void * * end = dest_ + n / sizeof (void * );
1134+
1135+ for (; dest_ != end ; dest_ ++ , src_ ++ ) {
1136+ * dest_ = * src_ ;
1137+ // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1138+ // memory_order_relaxed);
1139+ }
1140+ }
1141+ else if (dest > src ) {
1142+ n = n / sizeof (void * ) - 1 ;
1143+ void * * dest_ = (void * * )dest + n ;
1144+ void * * src_ = (void * * )src + n ;
1145+ void * * end = (void * * )dest - 1 ;
1146+
1147+ for (; dest_ != end ; dest_ -- , src_ -- ) {
1148+ * dest_ = * src_ ;
1149+ // atomic_store_explicit((_Atomic(void*)*)dest_, *src_,
1150+ // memory_order_relaxed);
1151+ }
1152+ }
11501153
11511154 return dest ;
11521155}
0 commit comments