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

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

Issue 7170012: Crankshaft support for polymorphic array handling (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: address comments; add implemention for ARM and x64 Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 V(CheckSmi) \ 70 V(CheckSmi) \
71 V(ClampDToUint8) \ 71 V(ClampDToUint8) \
72 V(ClampIToUint8) \ 72 V(ClampIToUint8) \
73 V(ClampTToUint8) \ 73 V(ClampTToUint8) \
74 V(ClassOfTest) \ 74 V(ClassOfTest) \
75 V(ClassOfTestAndBranch) \ 75 V(ClassOfTestAndBranch) \
76 V(CmpID) \ 76 V(CmpID) \
77 V(CmpIDAndBranch) \ 77 V(CmpIDAndBranch) \
78 V(CmpJSObjectEq) \ 78 V(CmpJSObjectEq) \
79 V(CmpJSObjectEqAndBranch) \ 79 V(CmpJSObjectEqAndBranch) \
80 V(CmpMapAndBranch) \
80 V(CmpSymbolEq) \ 81 V(CmpSymbolEq) \
81 V(CmpSymbolEqAndBranch) \ 82 V(CmpSymbolEqAndBranch) \
82 V(CmpMapAndBranch) \
83 V(CmpT) \ 83 V(CmpT) \
84 V(CmpConstantEq) \
85 V(CmpConstantEqAndBranch) \
84 V(ConstantD) \ 86 V(ConstantD) \
85 V(ConstantI) \ 87 V(ConstantI) \
86 V(ConstantT) \ 88 V(ConstantT) \
87 V(Context) \ 89 V(Context) \
88 V(DeleteProperty) \ 90 V(DeleteProperty) \
89 V(Deoptimize) \ 91 V(Deoptimize) \
90 V(DivI) \ 92 V(DivI) \
91 V(DoubleToI) \ 93 V(DoubleToI) \
94 V(ElementsKind) \
92 V(ExternalArrayLength) \ 95 V(ExternalArrayLength) \
93 V(FixedArrayLength) \ 96 V(FixedArrayLength) \
94 V(FunctionLiteral) \ 97 V(FunctionLiteral) \
95 V(GetCachedArrayIndex) \ 98 V(GetCachedArrayIndex) \
96 V(GlobalObject) \ 99 V(GlobalObject) \
97 V(GlobalReceiver) \ 100 V(GlobalReceiver) \
98 V(Goto) \ 101 V(Goto) \
99 V(HasCachedArrayIndex) \ 102 V(HasCachedArrayIndex) \
100 V(HasCachedArrayIndexAndBranch) \ 103 V(HasCachedArrayIndexAndBranch) \
101 V(HasInstanceType) \ 104 V(HasInstanceType) \
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 public: 660 public:
658 LCmpSymbolEqAndBranch(LOperand* left, LOperand* right) { 661 LCmpSymbolEqAndBranch(LOperand* left, LOperand* right) {
659 inputs_[0] = left; 662 inputs_[0] = left;
660 inputs_[1] = right; 663 inputs_[1] = right;
661 } 664 }
662 665
663 DECLARE_CONCRETE_INSTRUCTION(CmpSymbolEqAndBranch, "cmp-symbol-eq-and-branch") 666 DECLARE_CONCRETE_INSTRUCTION(CmpSymbolEqAndBranch, "cmp-symbol-eq-and-branch")
664 }; 667 };
665 668
666 669
670 class LCmpConstantEq: public LTemplateInstruction<1, 1, 0> {
671 public:
672 explicit LCmpConstantEq(LOperand* left) {
673 inputs_[0] = left;
674 }
675
676 DECLARE_CONCRETE_INSTRUCTION(CmpConstantEq, "cmp-constant-eq")
677 DECLARE_HYDROGEN_ACCESSOR(CompareConstantEq)
678 };
679
680
681 class LCmpConstantEqAndBranch: public LControlInstruction<1, 0> {
682 public:
683 explicit LCmpConstantEqAndBranch(LOperand* left) {
684 inputs_[0] = left;
685 }
686
687 DECLARE_CONCRETE_INSTRUCTION(CmpConstantEqAndBranch,
688 "cmp-constant-eq-and-branch")
689 DECLARE_HYDROGEN_ACCESSOR(CompareConstantEq)
690 };
691
692
667 class LIsNull: public LTemplateInstruction<1, 1, 0> { 693 class LIsNull: public LTemplateInstruction<1, 1, 0> {
668 public: 694 public:
669 explicit LIsNull(LOperand* value) { 695 explicit LIsNull(LOperand* value) {
670 inputs_[0] = value; 696 inputs_[0] = value;
671 } 697 }
672 698
673 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null") 699 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null")
674 DECLARE_HYDROGEN_ACCESSOR(IsNull) 700 DECLARE_HYDROGEN_ACCESSOR(IsNull)
675 701
676 bool is_strict() const { return hydrogen()->is_strict(); } 702 bool is_strict() const { return hydrogen()->is_strict(); }
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 public: 1097 public:
1072 explicit LFixedArrayLength(LOperand* value) { 1098 explicit LFixedArrayLength(LOperand* value) {
1073 inputs_[0] = value; 1099 inputs_[0] = value;
1074 } 1100 }
1075 1101
1076 DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length") 1102 DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length")
1077 DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength) 1103 DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength)
1078 }; 1104 };
1079 1105
1080 1106
1107 class LElementsKind: public LTemplateInstruction<1, 1, 0> {
1108 public:
1109 explicit LElementsKind(LOperand* value) {
1110 inputs_[0] = value;
1111 }
1112
1113 DECLARE_CONCRETE_INSTRUCTION(ElementsKind, "elements-kind")
1114 DECLARE_HYDROGEN_ACCESSOR(ElementsKind)
1115 };
1116
1117
1081 class LValueOf: public LTemplateInstruction<1, 1, 1> { 1118 class LValueOf: public LTemplateInstruction<1, 1, 1> {
1082 public: 1119 public:
1083 LValueOf(LOperand* value, LOperand* temp) { 1120 LValueOf(LOperand* value, LOperand* temp) {
1084 inputs_[0] = value; 1121 inputs_[0] = value;
1085 temps_[0] = temp; 1122 temps_[0] = temp;
1086 } 1123 }
1087 1124
1088 DECLARE_CONCRETE_INSTRUCTION(ValueOf, "value-of") 1125 DECLARE_CONCRETE_INSTRUCTION(ValueOf, "value-of")
1089 DECLARE_HYDROGEN_ACCESSOR(ValueOf) 1126 DECLARE_HYDROGEN_ACCESSOR(ValueOf)
1090 }; 1127 };
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 2371
2335 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2372 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2336 }; 2373 };
2337 2374
2338 #undef DECLARE_HYDROGEN_ACCESSOR 2375 #undef DECLARE_HYDROGEN_ACCESSOR
2339 #undef DECLARE_CONCRETE_INSTRUCTION 2376 #undef DECLARE_CONCRETE_INSTRUCTION
2340 2377
2341 } } // namespace v8::internal 2378 } } // namespace v8::internal
2342 2379
2343 #endif // V8_IA32_LITHIUM_IA32_H_ 2380 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698