13cab2bb3Spatrick //===-- crc32_hw.cpp --------------------------------------------*- C++ -*-===// 23cab2bb3Spatrick // 33cab2bb3Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 43cab2bb3Spatrick // See https://llvm.org/LICENSE.txt for license information. 53cab2bb3Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 63cab2bb3Spatrick // 73cab2bb3Spatrick //===----------------------------------------------------------------------===// 83cab2bb3Spatrick 93cab2bb3Spatrick #include "checksum.h" 103cab2bb3Spatrick 113cab2bb3Spatrick namespace scudo { 123cab2bb3Spatrick 13*810390e3Srobert #if defined(__CRC32__) || defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) computeHardwareCRC32(u32 Crc,uptr Data)143cab2bb3Spatricku32 computeHardwareCRC32(u32 Crc, uptr Data) { 153cab2bb3Spatrick return static_cast<u32>(CRC32_INTRINSIC(Crc, Data)); 163cab2bb3Spatrick } 17*810390e3Srobert #endif // defined(__CRC32__) || defined(__SSE4_2__) || 18*810390e3Srobert // defined(__ARM_FEATURE_CRC32) 193cab2bb3Spatrick 203cab2bb3Spatrick } // namespace scudo 21