fix by some comments

This commit is contained in:
anthony-zy
2025-10-17 10:28:17 +08:00
parent c19d705ee1
commit 9fd2b72c77

View File

@@ -1261,22 +1261,22 @@ void MemCopy64(char* dst, const void* src, size_t size) {
// RVV acceleration available on RISC-V when compiled with -march=rv64gcv // RVV acceleration available on RISC-V when compiled with -march=rv64gcv
#elif defined(__riscv) && SNAPPY_HAVE_RVV #elif defined(__riscv) && SNAPPY_HAVE_RVV
// Cast pointers to the type we will operate on. // Cast pointers to the type we will operate on.
unsigned char* dst_ptr = (unsigned char*)dst; unsigned char* dst_ptr = reinterpret_cast<unsigned char*>(dst);
const unsigned char* src_ptr = (const unsigned char*)src; const unsigned char* src_ptr = reinterpret_cast<const unsigned char*>(src);
size_t remaining_bytes = size; size_t remaining_bytes = size;
//Loop as long as there are bytes remaining to be copied. // Loop as long as there are bytes remaining to be copied.
while (remaining_bytes > 0) { while (remaining_bytes > 0) {
//Set vector configuration: e8 (8-bit elements), m2 (LMUL=2). // Set vector configuration: e8 (8-bit elements), m2 (LMUL=2).
//Use e8m2 configuration to maximize throughput. // Use e8m2 configuration to maximize throughput.
size_t vl = VSETVL_E8M2(remaining_bytes); size_t vl = VSETVL_E8M2(remaining_bytes);
//Load data from the current source pointer. // Load data from the current source pointer.
vuint8m2_t vec = VLE8_V_U8M2(src_ptr, vl); vuint8m2_t vec = VLE8_V_U8M2(src_ptr, vl);
//Store data to the current destination pointer. // Store data to the current destination pointer.
VSE8_V_U8M2(dst_ptr, vec, vl); VSE8_V_U8M2(dst_ptr, vec, vl);
//Update pointers and the remaining count. // Update pointers and the remaining count.
src_ptr += vl; src_ptr += vl;
dst_ptr += vl; dst_ptr += vl;
remaining_bytes -= vl; remaining_bytes -= vl;
} }
#else #else
@@ -1284,8 +1284,8 @@ void MemCopy64(char* dst, const void* src, size_t size) {
//Profiling shows that nearly all copies are short. //Profiling shows that nearly all copies are short.
if (SNAPPY_PREDICT_FALSE(size > kShortMemCopy)) { if (SNAPPY_PREDICT_FALSE(size > kShortMemCopy)) {
std::memmove(dst + kShortMemCopy, std::memmove(dst + kShortMemCopy,
static_cast<const uint8_t*>(src) + kShortMemCopy, static_cast<const uint8_t*>(src) + kShortMemCopy,
64 - kShortMemCopy);} 64 - kShortMemCopy);
#endif #endif
} }