LCOV - code coverage report
Current view: top level - src - lookup-cache-inl.h (source / functions) Hit Total Coverage
Test: app.info Lines: 6 6 100.0 %
Date: 2019-04-19 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2016 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #ifndef V8_LOOKUP_CACHE_INL_H_
       6             : #define V8_LOOKUP_CACHE_INL_H_
       7             : 
       8             : #include "src/lookup-cache.h"
       9             : 
      10             : #include "src/objects-inl.h"
      11             : 
      12             : namespace v8 {
      13             : namespace internal {
      14             : 
      15             : // static
      16             : int DescriptorLookupCache::Hash(Map source, Name name) {
      17             :   DCHECK(name->IsUniqueName());
      18             :   // Uses only lower 32 bits if pointers are larger.
      19    78701453 :   uint32_t source_hash = static_cast<uint32_t>(source.ptr()) >> kTaggedSizeLog2;
      20             :   uint32_t name_hash = name->hash_field();
      21   121553689 :   return (source_hash ^ name_hash) % kLength;
      22             : }
      23             : 
      24             : int DescriptorLookupCache::Lookup(Map source, Name name) {
      25             :   int index = Hash(source, name);
      26             :   Key& key = keys_[index];
      27   116690321 :   if ((key.source == source) && (key.name == name)) return results_[index];
      28             :   return kAbsent;
      29             : }
      30             : 
      31             : void DescriptorLookupCache::Update(Map source, Name name, int result) {
      32             :   DCHECK_NE(result, kAbsent);
      33             :   int index = Hash(source, name);
      34             :   Key& key = keys_[index];
      35    42852236 :   key.source = source;
      36    42852236 :   key.name = name;
      37    42852236 :   results_[index] = result;
      38             : }
      39             : 
      40             : }  // namespace internal
      41             : }  // namespace v8
      42             : 
      43             : #endif  // V8_LOOKUP_CACHE_INL_H_

Generated by: LCOV version 1.10