| Index: src/arm64/cpu-arm64.cc
|
| diff --git a/src/arm64/cpu-arm64.cc b/src/arm64/cpu-arm64.cc
|
| index cf2cc572155ac43a7ca5438a2afed43458a89e18..888528346fcc129b11e421c068b04fb93fade575 100644
|
| --- a/src/arm64/cpu-arm64.cc
|
| +++ b/src/arm64/cpu-arm64.cc
|
| @@ -12,32 +12,6 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| -class CacheLineSizes {
|
| - public:
|
| - CacheLineSizes() {
|
| -#ifdef USE_SIMULATOR
|
| - cache_type_register_ = 0;
|
| -#else
|
| - // Copy the content of the cache type register to a core register.
|
| - __asm__ __volatile__ ("mrs %[ctr], ctr_el0" // NOLINT
|
| - : [ctr] "=r" (cache_type_register_));
|
| -#endif
|
| - }
|
| -
|
| - uint32_t icache_line_size() const { return ExtractCacheLineSize(0); }
|
| - uint32_t dcache_line_size() const { return ExtractCacheLineSize(16); }
|
| -
|
| - private:
|
| - uint32_t ExtractCacheLineSize(int cache_line_size_shift) const {
|
| - // The cache type register holds the size of cache lines in words as a
|
| - // power of two.
|
| - return 4 << ((cache_type_register_ >> cache_line_size_shift) & 0xf);
|
| - }
|
| -
|
| - uint32_t cache_type_register_;
|
| -};
|
| -
|
| -
|
| void CpuFeatures::FlushICache(void* address, size_t length) {
|
| #ifdef V8_HOST_ARCH_ARM64
|
| // The code below assumes user space cache operations are allowed. The goal
|
| @@ -46,9 +20,8 @@ void CpuFeatures::FlushICache(void* address, size_t length) {
|
|
|
| uintptr_t start = reinterpret_cast<uintptr_t>(address);
|
| // Sizes will be used to generate a mask big enough to cover a pointer.
|
| - CacheLineSizes sizes;
|
| - uintptr_t dsize = sizes.dcache_line_size();
|
| - uintptr_t isize = sizes.icache_line_size();
|
| + uintptr_t dsize = CpuFeatures::dcache_line_size();
|
| + uintptr_t isize = CpuFeatures::icache_line_size();
|
| // Cache line sizes are always a power of 2.
|
| DCHECK(CountSetBits(dsize, 64) == 1);
|
| DCHECK(CountSetBits(isize, 64) == 1);
|
|
|