ic-compiler.h 1.35 KB
Newer Older
1
// Copyright 2014 the V8 project authors. All rights reserved.
2 3
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
4

5 6
#ifndef V8_IC_IC_COMPILER_H_
#define V8_IC_IC_COMPILER_H_
7

8
#include "src/ic/access-compiler.h"
9

10 11
namespace v8 {
namespace internal {
12 13


14
class PropertyICCompiler : public PropertyAccessCompiler {
15
 public:
16
  // Keyed
17
  static Handle<Object> ComputeKeyedStoreMonomorphicHandler(
18
      Handle<Map> receiver_map, KeyedAccessStoreMode store_mode);
19 20
  static void ComputeKeyedStorePolymorphicHandlers(
      MapHandleList* receiver_maps, MapHandleList* transitioned_maps,
21
      List<Handle<Object>>* handlers, KeyedAccessStoreMode store_mode);
22 23

 private:
24 25 26
  explicit PropertyICCompiler(Isolate* isolate)
      : PropertyAccessCompiler(isolate, Code::KEYED_STORE_IC,
                               kCacheOnReceiver) {}
27

28
  Handle<Object> CompileKeyedStoreMonomorphicHandler(
29 30 31
      Handle<Map> receiver_map, KeyedAccessStoreMode store_mode);
  void CompileKeyedStorePolymorphicHandlers(MapHandleList* receiver_maps,
                                            MapHandleList* transitioned_maps,
32
                                            List<Handle<Object>>* handlers,
33
                                            KeyedAccessStoreMode store_mode);
34 35 36
};


37 38
}  // namespace internal
}  // namespace v8
39

40
#endif  // V8_IC_IC_COMPILER_H_