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

Side by Side Diff: src/hydrogen.h

Issue 19492007: Generate KeyedLoadDictionaryElementStub with Hydrogen (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Better formatting Created 7 years, 1 month 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
« no previous file with comments | « src/flag-definitions.h ('k') | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 HValue* length); 1272 HValue* length);
1273 1273
1274 void BuildTransitionElementsKind(HValue* object, 1274 void BuildTransitionElementsKind(HValue* object,
1275 HValue* map, 1275 HValue* map,
1276 ElementsKind from_kind, 1276 ElementsKind from_kind,
1277 ElementsKind to_kind, 1277 ElementsKind to_kind,
1278 bool is_jsarray); 1278 bool is_jsarray);
1279 1279
1280 HValue* BuildNumberToString(HValue* object, Handle<Type> type); 1280 HValue* BuildNumberToString(HValue* object, Handle<Type> type);
1281 1281
1282 HValue* BuildUncheckedDictionaryElementLoad(HValue* receiver,
1283 HValue* key);
1284
1282 // Computes the size for a sequential string of the given length and encoding. 1285 // Computes the size for a sequential string of the given length and encoding.
1283 HValue* BuildSeqStringSizeFor(HValue* length, 1286 HValue* BuildSeqStringSizeFor(HValue* length,
1284 String::Encoding encoding); 1287 String::Encoding encoding);
1285 // Copies characters from one sequential string to another. 1288 // Copies characters from one sequential string to another.
1286 void BuildCopySeqStringChars(HValue* src, 1289 void BuildCopySeqStringChars(HValue* src,
1287 HValue* src_offset, 1290 HValue* src_offset,
1288 String::Encoding src_encoding, 1291 String::Encoding src_encoding,
1289 HValue* dst, 1292 HValue* dst,
1290 HValue* dst_offset, 1293 HValue* dst_offset,
1291 String::Encoding dst_encoding, 1294 String::Encoding dst_encoding,
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 ElementsKind to_elements_kind, 1697 ElementsKind to_elements_kind,
1695 HValue* length, 1698 HValue* length,
1696 HValue* capacity); 1699 HValue* capacity);
1697 1700
1698 HValue* BuildCloneShallowArray(HValue* boilerplate, 1701 HValue* BuildCloneShallowArray(HValue* boilerplate,
1699 HValue* allocation_site, 1702 HValue* allocation_site,
1700 AllocationSiteMode mode, 1703 AllocationSiteMode mode,
1701 ElementsKind kind, 1704 ElementsKind kind,
1702 int length); 1705 int length);
1703 1706
1707 HValue* BuildElementIndexHash(HValue* index);
1708
1704 void BuildCompareNil( 1709 void BuildCompareNil(
1705 HValue* value, 1710 HValue* value,
1706 Handle<Type> type, 1711 Handle<Type> type,
1707 HIfContinuation* continuation); 1712 HIfContinuation* continuation);
1708 1713
1709 HValue* BuildCreateAllocationMemento(HValue* previous_object, 1714 HValue* BuildCreateAllocationMemento(HValue* previous_object,
1710 int previous_object_size, 1715 int previous_object_size,
1711 HValue* payload); 1716 HValue* payload);
1712 1717
1713 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant, 1718 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant,
1714 CompilationInfo* info); 1719 CompilationInfo* info);
1715 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, 1720 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype,
1716 Handle<JSObject> holder); 1721 Handle<JSObject> holder);
1717 1722
1718 HInstruction* BuildGetNativeContext(); 1723 HInstruction* BuildGetNativeContext();
1719 HInstruction* BuildGetArrayFunction(); 1724 HInstruction* BuildGetArrayFunction();
1720 1725
1721 protected: 1726 protected:
1722 void SetSourcePosition(int position) { 1727 void SetSourcePosition(int position) {
1723 ASSERT(position != RelocInfo::kNoPosition); 1728 ASSERT(position != RelocInfo::kNoPosition);
1724 position_ = position; 1729 position_ = position;
1725 } 1730 }
1726 1731
1727 private: 1732 private:
1728 HGraphBuilder(); 1733 HGraphBuilder();
1729 1734
1735 HValue* BuildUncheckedDictionaryElementLoadHelper(
1736 HValue* elements,
1737 HValue* key,
1738 HValue* hash,
1739 HValue* mask,
1740 int current_probe);
1741
1730 void PadEnvironmentForContinuation(HBasicBlock* from, 1742 void PadEnvironmentForContinuation(HBasicBlock* from,
1731 HBasicBlock* continuation); 1743 HBasicBlock* continuation);
1732 1744
1733 CompilationInfo* info_; 1745 CompilationInfo* info_;
1734 HGraph* graph_; 1746 HGraph* graph_;
1735 HBasicBlock* current_block_; 1747 HBasicBlock* current_block_;
1736 int position_; 1748 int position_;
1737 }; 1749 };
1738 1750
1739 1751
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
2563 } 2575 }
2564 2576
2565 private: 2577 private:
2566 HGraphBuilder* builder_; 2578 HGraphBuilder* builder_;
2567 }; 2579 };
2568 2580
2569 2581
2570 } } // namespace v8::internal 2582 } } // namespace v8::internal
2571 2583
2572 #endif // V8_HYDROGEN_H_ 2584 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/flag-definitions.h ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698