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

Side by Side Diff: src/hydrogen.h

Issue 14284010: Introduce HObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 999 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 HValue* object, 1010 HValue* object,
1011 HValue* key, 1011 HValue* key,
1012 HValue* val, 1012 HValue* val,
1013 HCheckMaps* mapcheck, 1013 HCheckMaps* mapcheck,
1014 bool is_js_array, 1014 bool is_js_array,
1015 ElementsKind elements_kind, 1015 ElementsKind elements_kind,
1016 bool is_store, 1016 bool is_store,
1017 KeyedAccessStoreMode store_mode, 1017 KeyedAccessStoreMode store_mode,
1018 Representation checked_index_representation = Representation::None()); 1018 Representation checked_index_representation = Representation::None());
1019 1019
1020 HInstruction* BuildStoreMap(HValue* object, HValue* map); 1020 HStoreNamedField* AddStore(HValue *object, ObjectAccess access, HValue *val);
1021 HInstruction* BuildStoreMap(HValue* object, Handle<Map> map); 1021
1022 ObjectAccess AccessArray(int offset);
danno 2013/04/26 09:39:38 I think these methods are better suited as static
titzer 2013/04/30 15:56:47 I'm OK with putting the guts of those methods in O
danno 2013/05/02 14:16:47 Tricky/non-trick is an arbitrary judgment call, I
titzer 2013/05/03 09:18:41 I've moved these methods into static constructors
1023 ObjectAccess AccessArrayLength();
1024 ObjectAccess AccessElements();
1025 ObjectAccess AccessFixedArrayLength();
1026 ObjectAccess AccessMap();
1027 ObjectAccess AccessField(Handle<Map> map, Handle<String> name,
danno 2013/04/26 09:39:38 Shouldn't need the name here, the LookupResult has
titzer 2013/04/30 15:56:47 I hunted around inside the LookupResult and couldn
1028 LookupResult* lookup);
1029 ObjectAccess AccessInobject(Handle<String> name, int offset);
danno 2013/04/26 09:39:38 Should take a map here. Look up the name in the de
titzer 2013/04/30 15:56:47 We might need another version that takes a map whe
1022 1030
1023 class IfBuilder { 1031 class IfBuilder {
1024 public: 1032 public:
1025 explicit IfBuilder(HGraphBuilder* builder, 1033 explicit IfBuilder(HGraphBuilder* builder,
1026 int position = RelocInfo::kNoPosition); 1034 int position = RelocInfo::kNoPosition);
1027 IfBuilder(HGraphBuilder* builder, 1035 IfBuilder(HGraphBuilder* builder,
1028 HIfContinuation* continuation); 1036 HIfContinuation* continuation);
1029 1037
1030 ~IfBuilder() { 1038 ~IfBuilder() {
1031 if (!finished_) End(); 1039 if (!finished_) End();
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 EmbeddedVector<char, 64> filename_; 1956 EmbeddedVector<char, 64> filename_;
1949 HeapStringAllocator string_allocator_; 1957 HeapStringAllocator string_allocator_;
1950 StringStream trace_; 1958 StringStream trace_;
1951 int indent_; 1959 int indent_;
1952 }; 1960 };
1953 1961
1954 1962
1955 } } // namespace v8::internal 1963 } } // namespace v8::internal
1956 1964
1957 #endif // V8_HYDROGEN_H_ 1965 #endif // V8_HYDROGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698