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

Side by Side Diff: src/hydrogen.h

Issue 12700006: Replace ICStub for array.length with hydrogen stub (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Removed debug print Created 7 years, 9 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 903 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 HInstruction* BuildUncheckedMonomorphicElementAccess( 914 HInstruction* BuildUncheckedMonomorphicElementAccess(
915 HValue* object, 915 HValue* object,
916 HValue* key, 916 HValue* key,
917 HValue* val, 917 HValue* val,
918 HCheckMaps* mapcheck, 918 HCheckMaps* mapcheck,
919 bool is_js_array, 919 bool is_js_array,
920 ElementsKind elements_kind, 920 ElementsKind elements_kind,
921 bool is_store, 921 bool is_store,
922 Representation checked_index_representation = Representation::None()); 922 Representation checked_index_representation = Representation::None());
923 923
924 HInstruction* BuildFastArrayLengthLoad(HValue* object, HValue* typecheck);
925
924 HInstruction* BuildStoreMap(HValue* object, HValue* map, BailoutId id); 926 HInstruction* BuildStoreMap(HValue* object, HValue* map, BailoutId id);
925 HInstruction* BuildStoreMap(HValue* object, Handle<Map> map, BailoutId id); 927 HInstruction* BuildStoreMap(HValue* object, Handle<Map> map, BailoutId id);
926 928
927 class CheckBuilder { 929 class CheckBuilder {
928 public: 930 public:
929 CheckBuilder(HGraphBuilder* builder, BailoutId id); 931 CheckBuilder(HGraphBuilder* builder, BailoutId id);
930 ~CheckBuilder() { 932 ~CheckBuilder() {
931 if (!finished_) End(); 933 if (!finished_) End();
932 } 934 }
933 935
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 HValue* value, 1306 HValue* value,
1305 int position, 1307 int position,
1306 BailoutId ast_id); 1308 BailoutId ast_id);
1307 1309
1308 void HandlePropertyAssignment(Assignment* expr); 1310 void HandlePropertyAssignment(Assignment* expr);
1309 void HandleCompoundAssignment(Assignment* expr); 1311 void HandleCompoundAssignment(Assignment* expr);
1310 void HandlePolymorphicLoadNamedField(Property* expr, 1312 void HandlePolymorphicLoadNamedField(Property* expr,
1311 HValue* object, 1313 HValue* object,
1312 SmallMapList* types, 1314 SmallMapList* types,
1313 Handle<String> name); 1315 Handle<String> name);
1316 bool HandlePolymorphicArrayLengthLoad(Property* expr,
1317 HValue* object,
1318 SmallMapList* types,
1319 Handle<String> name);
1314 void HandlePolymorphicStoreNamedField(Assignment* expr, 1320 void HandlePolymorphicStoreNamedField(Assignment* expr,
1315 HValue* object, 1321 HValue* object,
1316 HValue* value, 1322 HValue* value,
1317 SmallMapList* types, 1323 SmallMapList* types,
1318 Handle<String> name); 1324 Handle<String> name);
1319 void HandlePolymorphicCallNamed(Call* expr, 1325 void HandlePolymorphicCallNamed(Call* expr,
1320 HValue* receiver, 1326 HValue* receiver,
1321 SmallMapList* types, 1327 SmallMapList* types,
1322 Handle<String> name); 1328 Handle<String> name);
1323 void HandleLiteralCompareTypeof(CompareOperation* expr, 1329 void HandleLiteralCompareTypeof(CompareOperation* expr,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1376 Property* expr); 1382 Property* expr);
1377 HInstruction* BuildCallGetter(HValue* object, 1383 HInstruction* BuildCallGetter(HValue* object,
1378 Handle<Map> map, 1384 Handle<Map> map,
1379 Handle<JSFunction> getter, 1385 Handle<JSFunction> getter,
1380 Handle<JSObject> holder); 1386 Handle<JSObject> holder);
1381 HInstruction* BuildLoadNamedMonomorphic(HValue* object, 1387 HInstruction* BuildLoadNamedMonomorphic(HValue* object,
1382 Handle<String> name, 1388 Handle<String> name,
1383 Property* expr, 1389 Property* expr,
1384 Handle<Map> map); 1390 Handle<Map> map);
1385 1391
1392 void AddCheckMap(HValue* object, Handle<Map> map);
1393
1386 void AddCheckMapsWithTransitions(HValue* object, 1394 void AddCheckMapsWithTransitions(HValue* object,
1387 Handle<Map> map); 1395 Handle<Map> map);
1388 1396
1389 HInstruction* BuildStoreNamedField(HValue* object, 1397 HInstruction* BuildStoreNamedField(HValue* object,
1390 Handle<String> name, 1398 Handle<String> name,
1391 HValue* value, 1399 HValue* value,
1392 Handle<Map> map, 1400 Handle<Map> map,
1393 LookupResult* lookup); 1401 LookupResult* lookup);
1394 HInstruction* BuildStoreNamedGeneric(HValue* object, 1402 HInstruction* BuildStoreNamedGeneric(HValue* object,
1395 Handle<String> name, 1403 Handle<String> name,
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 EmbeddedVector<char, 64> filename_; 1687 EmbeddedVector<char, 64> filename_;
1680 HeapStringAllocator string_allocator_; 1688 HeapStringAllocator string_allocator_;
1681 StringStream trace_; 1689 StringStream trace_;
1682 int indent_; 1690 int indent_;
1683 }; 1691 };
1684 1692
1685 1693
1686 } } // namespace v8::internal 1694 } } // namespace v8::internal
1687 1695
1688 #endif // V8_HYDROGEN_H_ 1696 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/hydrogen.cc » ('j') | src/hydrogen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698