| Index: src/ic/handler-configuration.h
|
| diff --git a/src/ic/handler-configuration.h b/src/ic/handler-configuration.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bf7c4770b91d04ef2849aeb1029079023635b36e
|
| --- /dev/null
|
| +++ b/src/ic/handler-configuration.h
|
| @@ -0,0 +1,45 @@
|
| +// Copyright 2016 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef V8_IC_HANDLER_CONFIGURATION_H_
|
| +#define V8_IC_HANDLER_CONFIGURATION_H_
|
| +
|
| +#include "src/elements-kind.h"
|
| +#include "src/globals.h"
|
| +#include "src/utils.h"
|
| +
|
| +namespace v8 {
|
| +namespace internal {
|
| +
|
| +enum LoadHandlerType {
|
| + kLoadICHandlerForElements = 0,
|
| + kLoadICHandlerForProperties = 1
|
| +};
|
| +
|
| +class LoadHandlerTypeBit : public BitField<bool, 0, 1> {};
|
| +
|
| +// Encoding for configuration Smis for property loads:
|
| +class FieldOffsetIsInobject
|
| + : public BitField<bool, LoadHandlerTypeBit::kNext, 1> {};
|
| +class FieldOffsetIsDouble
|
| + : public BitField<bool, FieldOffsetIsInobject::kNext, 1> {};
|
| +class FieldOffsetOffset : public BitField<int, FieldOffsetIsDouble::kNext, 27> {
|
| +};
|
| +// Make sure we don't overflow into the sign bit.
|
| +STATIC_ASSERT(FieldOffsetOffset::kNext <= kSmiValueSize - 1);
|
| +
|
| +// Encoding for configuration Smis for elements loads:
|
| +class KeyedLoadIsJsArray : public BitField<bool, LoadHandlerTypeBit::kNext, 1> {
|
| +};
|
| +class KeyedLoadConvertHole
|
| + : public BitField<bool, KeyedLoadIsJsArray::kNext, 1> {};
|
| +class KeyedLoadElementsKind
|
| + : public BitField<ElementsKind, KeyedLoadConvertHole::kNext, 8> {};
|
| +// Make sure we don't overflow into the sign bit.
|
| +STATIC_ASSERT(KeyedLoadElementsKind::kNext <= kSmiValueSize - 1);
|
| +
|
| +} // namespace internal
|
| +} // namespace v8
|
| +
|
| +#endif // V8_IC_HANDLER_CONFIGURATION_H_
|
|
|