Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Unified Diff: src/hydrogen.h

Issue 324093002: ARM/ARM64: Optimise HLoadNamedField and HStoreNamedField. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Upload the correct patch (minor diff in hydrogen.h) Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698