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

Side by Side Diff: src/arm/lithium-arm.h

Issue 6580038: [Isolates] Merge from bleeding_edge, revisions 5934-6100. (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: '' Created 9 years, 10 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
« no previous file with comments | « src/arm/ic-arm.cc ('k') | src/arm/lithium-arm.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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 // LClassOfTestAndBranch 114 // LClassOfTestAndBranch
115 // LDeleteProperty 115 // LDeleteProperty
116 // LDoubleToI 116 // LDoubleToI
117 // LHasCachedArrayIndex 117 // LHasCachedArrayIndex
118 // LHasCachedArrayIndexAndBranch 118 // LHasCachedArrayIndexAndBranch
119 // LHasInstanceType 119 // LHasInstanceType
120 // LHasInstanceTypeAndBranch 120 // LHasInstanceTypeAndBranch
121 // LInteger32ToDouble 121 // LInteger32ToDouble
122 // LIsNull 122 // LIsNull
123 // LIsNullAndBranch 123 // LIsNullAndBranch
124 // LIsObject
125 // LIsObjectAndBranch
124 // LIsSmi 126 // LIsSmi
125 // LIsSmiAndBranch 127 // LIsSmiAndBranch
126 // LLoadNamedField 128 // LLoadNamedField
127 // LLoadNamedGeneric 129 // LLoadNamedGeneric
128 // LNumberTagD 130 // LNumberTagD
129 // LNumberTagI 131 // LNumberTagI
130 // LPushArgument 132 // LPushArgument
131 // LReturn 133 // LReturn
132 // LSmiTag 134 // LSmiTag
133 // LStoreGlobal 135 // LStoreGlobal
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 V(FunctionLiteral) \ 198 V(FunctionLiteral) \
197 V(Gap) \ 199 V(Gap) \
198 V(GlobalObject) \ 200 V(GlobalObject) \
199 V(GlobalReceiver) \ 201 V(GlobalReceiver) \
200 V(Goto) \ 202 V(Goto) \
201 V(InstanceOf) \ 203 V(InstanceOf) \
202 V(InstanceOfAndBranch) \ 204 V(InstanceOfAndBranch) \
203 V(Integer32ToDouble) \ 205 V(Integer32ToDouble) \
204 V(IsNull) \ 206 V(IsNull) \
205 V(IsNullAndBranch) \ 207 V(IsNullAndBranch) \
208 V(IsObject) \
209 V(IsObjectAndBranch) \
206 V(IsSmi) \ 210 V(IsSmi) \
207 V(IsSmiAndBranch) \ 211 V(IsSmiAndBranch) \
208 V(HasInstanceType) \ 212 V(HasInstanceType) \
209 V(HasInstanceTypeAndBranch) \ 213 V(HasInstanceTypeAndBranch) \
210 V(HasCachedArrayIndex) \ 214 V(HasCachedArrayIndex) \
211 V(HasCachedArrayIndexAndBranch) \ 215 V(HasCachedArrayIndexAndBranch) \
212 V(ClassOfTest) \ 216 V(ClassOfTest) \
213 V(ClassOfTestAndBranch) \ 217 V(ClassOfTestAndBranch) \
214 V(Label) \ 218 V(Label) \
215 V(LazyBailout) \ 219 V(LazyBailout) \
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 662
659 class LUnaryMathOperation: public LUnaryOperation { 663 class LUnaryMathOperation: public LUnaryOperation {
660 public: 664 public:
661 explicit LUnaryMathOperation(LOperand* value) 665 explicit LUnaryMathOperation(LOperand* value)
662 : LUnaryOperation(value) { } 666 : LUnaryOperation(value) { }
663 667
664 DECLARE_CONCRETE_INSTRUCTION(UnaryMathOperation, "unary-math-operation") 668 DECLARE_CONCRETE_INSTRUCTION(UnaryMathOperation, "unary-math-operation")
665 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) 669 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
666 670
667 virtual void PrintDataTo(StringStream* stream) const; 671 virtual void PrintDataTo(StringStream* stream) const;
668 MathFunctionId op() const { return hydrogen()->op(); } 672 BuiltinFunctionId op() const { return hydrogen()->op(); }
669 }; 673 };
670 674
671 675
672 class LCmpJSObjectEq: public LBinaryOperation { 676 class LCmpJSObjectEq: public LBinaryOperation {
673 public: 677 public:
674 LCmpJSObjectEq(LOperand* left, LOperand* right) 678 LCmpJSObjectEq(LOperand* left, LOperand* right)
675 : LBinaryOperation(left, right) {} 679 : LBinaryOperation(left, right) {}
676 680
677 DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEq, "cmp-jsobject-eq") 681 DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEq, "cmp-jsobject-eq")
678 }; 682 };
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 739
736 LOperand* temp() const { return temp_; } 740 LOperand* temp() const { return temp_; }
737 741
738 private: 742 private:
739 LOperand* temp_; 743 LOperand* temp_;
740 int true_block_id_; 744 int true_block_id_;
741 int false_block_id_; 745 int false_block_id_;
742 }; 746 };
743 747
744 748
749 class LIsObject: public LUnaryOperation {
750 public:
751 LIsObject(LOperand* value, LOperand* temp)
752 : LUnaryOperation(value), temp_(temp) {}
753
754 DECLARE_CONCRETE_INSTRUCTION(IsObject, "is-object")
755
756 LOperand* temp() const { return temp_; }
757
758 private:
759 LOperand* temp_;
760 };
761
762
763 class LIsObjectAndBranch: public LIsObject {
764 public:
765 LIsObjectAndBranch(LOperand* value,
766 LOperand* temp,
767 LOperand* temp2,
768 int true_block_id,
769 int false_block_id)
770 : LIsObject(value, temp),
771 temp2_(temp2),
772 true_block_id_(true_block_id),
773 false_block_id_(false_block_id) { }
774
775 DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch")
776 virtual void PrintDataTo(StringStream* stream) const;
777 virtual bool IsControl() const { return true; }
778
779 int true_block_id() const { return true_block_id_; }
780 int false_block_id() const { return false_block_id_; }
781
782 LOperand* temp2() const { return temp2_; }
783
784 private:
785 LOperand* temp2_;
786 int true_block_id_;
787 int false_block_id_;
788 };
789
790
745 class LIsSmi: public LUnaryOperation { 791 class LIsSmi: public LUnaryOperation {
746 public: 792 public:
747 explicit LIsSmi(LOperand* value) : LUnaryOperation(value) {} 793 explicit LIsSmi(LOperand* value) : LUnaryOperation(value) {}
748 794
749 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi") 795 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi")
750 DECLARE_HYDROGEN_ACCESSOR(IsSmi) 796 DECLARE_HYDROGEN_ACCESSOR(IsSmi)
751 }; 797 };
752 798
753 799
754 class LIsSmiAndBranch: public LIsSmi { 800 class LIsSmiAndBranch: public LIsSmi {
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 class LNumberTagI: public LUnaryOperation { 1434 class LNumberTagI: public LUnaryOperation {
1389 public: 1435 public:
1390 explicit LNumberTagI(LOperand* use) : LUnaryOperation(use) { } 1436 explicit LNumberTagI(LOperand* use) : LUnaryOperation(use) { }
1391 1437
1392 DECLARE_CONCRETE_INSTRUCTION(NumberTagI, "number-tag-i") 1438 DECLARE_CONCRETE_INSTRUCTION(NumberTagI, "number-tag-i")
1393 }; 1439 };
1394 1440
1395 1441
1396 class LNumberTagD: public LUnaryOperation { 1442 class LNumberTagD: public LUnaryOperation {
1397 public: 1443 public:
1398 explicit LNumberTagD(LOperand* value, LOperand* temp) 1444 LNumberTagD(LOperand* value, LOperand* temp1, LOperand* temp2)
1399 : LUnaryOperation(value), temp_(temp) { } 1445 : LUnaryOperation(value), temp1_(temp1), temp2_(temp2) { }
1400 1446
1401 DECLARE_CONCRETE_INSTRUCTION(NumberTagD, "number-tag-d") 1447 DECLARE_CONCRETE_INSTRUCTION(NumberTagD, "number-tag-d")
1402 1448
1403 LOperand* temp() const { return temp_; } 1449 LOperand* temp1() const { return temp1_; }
1450 LOperand* temp2() const { return temp2_; }
1404 1451
1405 private: 1452 private:
1406 LOperand* temp_; 1453 LOperand* temp1_;
1454 LOperand* temp2_;
1407 }; 1455 };
1408 1456
1409 1457
1410 // Sometimes truncating conversion from a tagged value to an int32. 1458 // Sometimes truncating conversion from a tagged value to an int32.
1411 class LDoubleToI: public LUnaryOperation { 1459 class LDoubleToI: public LUnaryOperation {
1412 public: 1460 public:
1413 explicit LDoubleToI(LOperand* value) : LUnaryOperation(value) { } 1461 explicit LDoubleToI(LOperand* value) : LUnaryOperation(value) { }
1414 1462
1415 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i") 1463 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
1416 DECLARE_HYDROGEN_ACCESSOR(Change) 1464 DECLARE_HYDROGEN_ACCESSOR(Change)
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
1880 1928
1881 int ParameterAt(int index); 1929 int ParameterAt(int index);
1882 int GetParameterStackSlot(int index) const; 1930 int GetParameterStackSlot(int index) const;
1883 int spill_slot_count() const { return spill_slot_count_; } 1931 int spill_slot_count() const { return spill_slot_count_; }
1884 HGraph* graph() const { return graph_; } 1932 HGraph* graph() const { return graph_; }
1885 const ZoneList<LInstruction*>* instructions() const { return &instructions_; } 1933 const ZoneList<LInstruction*>* instructions() const { return &instructions_; }
1886 void AddGapMove(int index, LOperand* from, LOperand* to); 1934 void AddGapMove(int index, LOperand* from, LOperand* to);
1887 LGap* GetGapAt(int index) const; 1935 LGap* GetGapAt(int index) const;
1888 bool IsGapAt(int index) const; 1936 bool IsGapAt(int index) const;
1889 int NearestGapPos(int index) const; 1937 int NearestGapPos(int index) const;
1890 int NearestNextGapPos(int index) const;
1891 void MarkEmptyBlocks(); 1938 void MarkEmptyBlocks();
1892 const ZoneList<LPointerMap*>* pointer_maps() const { return &pointer_maps_; } 1939 const ZoneList<LPointerMap*>* pointer_maps() const { return &pointer_maps_; }
1893 LLabel* GetLabel(int block_id) const { 1940 LLabel* GetLabel(int block_id) const {
1894 HBasicBlock* block = graph_->blocks()->at(block_id); 1941 HBasicBlock* block = graph_->blocks()->at(block_id);
1895 int first_instruction = block->first_instruction_index(); 1942 int first_instruction = block->first_instruction_index();
1896 return LLabel::cast(instructions_[first_instruction]); 1943 return LLabel::cast(instructions_[first_instruction]);
1897 } 1944 }
1898 int LookupDestination(int block_id) const { 1945 int LookupDestination(int block_id) const {
1899 LLabel* cur = GetLabel(block_id); 1946 LLabel* cur = GetLabel(block_id);
1900 while (cur->replacement() != NULL) { 1947 while (cur->replacement() != NULL) {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2059 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2106 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2060 }; 2107 };
2061 2108
2062 #undef DECLARE_HYDROGEN_ACCESSOR 2109 #undef DECLARE_HYDROGEN_ACCESSOR
2063 #undef DECLARE_INSTRUCTION 2110 #undef DECLARE_INSTRUCTION
2064 #undef DECLARE_CONCRETE_INSTRUCTION 2111 #undef DECLARE_CONCRETE_INSTRUCTION
2065 2112
2066 } } // namespace v8::internal 2113 } } // namespace v8::internal
2067 2114
2068 #endif // V8_ARM_LITHIUM_ARM_H_ 2115 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/ic-arm.cc ('k') | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698