| Index: src/compiler/simplified-operator.h
|
| diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h
|
| index 907507cf723b07c909991e7fba650fd231fe3e52..32f0e8b1b7da4dd4289ff0af67e22f8cfca255b1 100644
|
| --- a/src/compiler/simplified-operator.h
|
| +++ b/src/compiler/simplified-operator.h
|
| @@ -28,6 +28,8 @@ struct SimplifiedOperatorBuilderImpl;
|
|
|
| enum BaseTaggedness { kUntaggedBase, kTaggedBase };
|
|
|
| +OStream& operator<<(OStream&, BaseTaggedness);
|
| +
|
| // An access descriptor for loads/stores of fixed structures like field
|
| // accesses of heap objects. Accesses from either tagged or untagged base
|
| // pointers are supported; untagging is done automatically during lowering.
|
| @@ -55,6 +57,11 @@ struct ElementAccess {
|
| int tag() const { return base_is_tagged == kTaggedBase ? kHeapObjectTag : 0; }
|
| };
|
|
|
| +bool operator==(ElementAccess const& lhs, ElementAccess const& rhs);
|
| +bool operator!=(ElementAccess const& lhs, ElementAccess const& rhs);
|
| +
|
| +OStream& operator<<(OStream&, ElementAccess const&);
|
| +
|
|
|
| // If the accessed object is not a heap object, add this to the header_size.
|
| static const int kNonHeapObjectHeaderSize = kHeapObjectTag;
|
| @@ -122,8 +129,12 @@ class SimplifiedOperatorBuilder FINAL {
|
|
|
| const Operator* LoadField(const FieldAccess&);
|
| const Operator* StoreField(const FieldAccess&);
|
| - const Operator* LoadElement(const ElementAccess&);
|
| - const Operator* StoreElement(const ElementAccess&);
|
| +
|
| + // load-element [base + index], length
|
| + const Operator* LoadElement(ElementAccess const&);
|
| +
|
| + // store-element [base + index], length, value
|
| + const Operator* StoreElement(ElementAccess const&);
|
|
|
| private:
|
| Zone* zone() const { return zone_; }
|
|
|