| Index: src/hydrogen.h
|
| diff --git a/src/hydrogen.h b/src/hydrogen.h
|
| index 818569b0919b0441bcb7a8f68b139c346e0d590c..067602ee0ed90e9f7893eecb76a84c8bf43c4177 100644
|
| --- a/src/hydrogen.h
|
| +++ b/src/hydrogen.h
|
| @@ -1908,6 +1908,38 @@ inline HInstruction* HGraphBuilder::AddUncasted<HDeoptimize>(
|
|
|
|
|
| template<>
|
| +inline HLoadNamedField*
|
| +HGraphBuilder::Add<HLoadNamedField, HValue*, HValue*, HObjectAccess>(
|
| + HValue* object, HValue* dependency, HObjectAccess access) {
|
| + HLoadNamedField* object_properties = NULL;
|
| + if (HLoadNamedField::PreferExtractLoadPropertiesPointer() &&
|
| + HLoadNamedField::NeedsPropertiesPointer(access)) {
|
| + object_properties = Add<HLoadNamedField>(
|
| + object, dependency, HObjectAccess::ForPropertiesPointer());
|
| + }
|
| + return AddInstructionTyped(New<HLoadNamedField>(
|
| + object, dependency, access, object_properties));
|
| +}
|
| +
|
| +
|
| +template<>
|
| +inline HLoadNamedField*
|
| +HGraphBuilder::Add<HLoadNamedField, HValue*, HValue*,
|
| + HObjectAccess, const UniqueSet<Map>*, HType>(
|
| + HValue* object, HValue* dependency, HObjectAccess access,
|
| + const UniqueSet<Map>* maps, HType type) {
|
| + HLoadNamedField* object_properties = NULL;
|
| + if (HLoadNamedField::PreferExtractLoadPropertiesPointer() &&
|
| + HLoadNamedField::NeedsPropertiesPointer(access)) {
|
| + object_properties = Add<HLoadNamedField>(
|
| + object, dependency, HObjectAccess::ForPropertiesPointer());
|
| + }
|
| + return AddInstructionTyped(New<HLoadNamedField>(
|
| + object, dependency, access, maps, type, object_properties));
|
| +}
|
| +
|
| +
|
| +template<>
|
| inline HSimulate* HGraphBuilder::Add<HSimulate>(
|
| BailoutId id,
|
| RemovableSimulate removable) {
|
| @@ -1931,6 +1963,24 @@ inline HInstruction* HGraphBuilder::AddUncasted<HSimulate>(BailoutId id) {
|
|
|
|
|
| template<>
|
| +inline HStoreNamedField*
|
| +HGraphBuilder::Add<HStoreNamedField, HValue*, HObjectAccess,
|
| + HValue*, StoreFieldOrKeyedMode, HValue*>(
|
| + HValue* obj, HObjectAccess access, HValue* val,
|
| + StoreFieldOrKeyedMode store_mode, HValue* obj_properties) {
|
| + HLoadNamedField* object_properties = NULL;
|
| + if (HStoreNamedField::PreferExtractLoadPropertiesPointer() &&
|
| + HStoreNamedField::NeedsPropertiesPointer(access)) {
|
| + object_properties = Add<HLoadNamedField>(
|
| + obj, reinterpret_cast<HValue*>(NULL),
|
| + HObjectAccess::ForPropertiesPointer());
|
| + }
|
| + return AddInstructionTyped(New<HStoreNamedField>(
|
| + obj, access, val, store_mode, object_properties));
|
| +}
|
| +
|
| +
|
| +template<>
|
| inline HReturn* HGraphBuilder::Add<HReturn>(HValue* value) {
|
| int num_parameters = graph()->info()->num_parameters();
|
| HValue* params = AddUncasted<HConstant>(num_parameters);
|
|
|