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

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

Issue 6304001: Support StringCharCodeAt in hydrogen/lithium. (Closed)
Patch Set: Created 9 years, 11 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
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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // LOsrEntry 98 // LOsrEntry
99 // LParameter 99 // LParameter
100 // LRegExpConstructResult 100 // LRegExpConstructResult
101 // LStackCheck 101 // LStackCheck
102 // LStoreKeyed 102 // LStoreKeyed
103 // LStoreKeyedFastElement 103 // LStoreKeyedFastElement
104 // LStoreKeyedGeneric 104 // LStoreKeyedGeneric
105 // LStoreNamed 105 // LStoreNamed
106 // LStoreNamedField 106 // LStoreNamedField
107 // LStoreNamedGeneric 107 // LStoreNamedGeneric
108 // LStringCharCodeAt
108 // LUnaryOperation 109 // LUnaryOperation
109 // LBitNotI 110 // LBitNotI
110 // LBranch 111 // LBranch
111 // LCallNew 112 // LCallNew
112 // LCheckFunction 113 // LCheckFunction
113 // LCheckInstanceType 114 // LCheckInstanceType
114 // LCheckMap 115 // LCheckMap
115 // LCheckSmi 116 // LCheckSmi
116 // LClassOfTest 117 // LClassOfTest
117 // LClassOfTestAndBranch 118 // LClassOfTestAndBranch
(...skipping 14 matching lines...) Expand all
132 // LJSArrayLength 133 // LJSArrayLength
133 // LLoadNamedField 134 // LLoadNamedField
134 // LLoadNamedGeneric 135 // LLoadNamedGeneric
135 // LLoadFunctionPrototype 136 // LLoadFunctionPrototype
136 // LNumberTagD 137 // LNumberTagD
137 // LNumberTagI 138 // LNumberTagI
138 // LPushArgument 139 // LPushArgument
139 // LReturn 140 // LReturn
140 // LSmiTag 141 // LSmiTag
141 // LStoreGlobal 142 // LStoreGlobal
143 // LStringLength
142 // LTaggedToI 144 // LTaggedToI
143 // LThrow 145 // LThrow
144 // LTypeof 146 // LTypeof
145 // LTypeofIs 147 // LTypeofIs
146 // LTypeofIsAndBranch 148 // LTypeofIsAndBranch
147 // LUnaryMathOperation 149 // LUnaryMathOperation
148 // LValueOf 150 // LValueOf
149 // LUnknownOSRValue 151 // LUnknownOSRValue
150 152
151 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \ 153 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 V(Return) \ 248 V(Return) \
247 V(ShiftI) \ 249 V(ShiftI) \
248 V(SmiTag) \ 250 V(SmiTag) \
249 V(SmiUntag) \ 251 V(SmiUntag) \
250 V(StackCheck) \ 252 V(StackCheck) \
251 V(StoreGlobal) \ 253 V(StoreGlobal) \
252 V(StoreKeyedFastElement) \ 254 V(StoreKeyedFastElement) \
253 V(StoreKeyedGeneric) \ 255 V(StoreKeyedGeneric) \
254 V(StoreNamedField) \ 256 V(StoreNamedField) \
255 V(StoreNamedGeneric) \ 257 V(StoreNamedGeneric) \
258 V(StringCharCodeAt) \
259 V(StringLength) \
256 V(SubI) \ 260 V(SubI) \
257 V(TaggedToI) \ 261 V(TaggedToI) \
258 V(Throw) \ 262 V(Throw) \
259 V(Typeof) \ 263 V(Typeof) \
260 V(TypeofIs) \ 264 V(TypeofIs) \
261 V(TypeofIsAndBranch) \ 265 V(TypeofIsAndBranch) \
262 V(UnaryMathOperation) \ 266 V(UnaryMathOperation) \
263 V(UnknownOSRValue) \ 267 V(UnknownOSRValue) \
264 V(ValueOf) 268 V(ValueOf)
265 269
(...skipping 1367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 1637
1634 class LStoreKeyedGeneric: public LStoreKeyed { 1638 class LStoreKeyedGeneric: public LStoreKeyed {
1635 public: 1639 public:
1636 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val) 1640 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val)
1637 : LStoreKeyed(obj, key, val) { } 1641 : LStoreKeyed(obj, key, val) { }
1638 1642
1639 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 1643 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
1640 }; 1644 };
1641 1645
1642 1646
1647 class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> {
1648 public:
1649 LStringCharCodeAt(LOperand* string, LOperand* index) {
1650 this->SetInputAt(0, string);
1651 this->SetInputAt(1, index);
1652 }
1653
1654 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at")
1655 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt)
1656
1657 LOperand* string() const { return this->InputAt(0); }
1658 LOperand* index() const { return this->InputAt(1); }
1659 };
1660
1661
1662 class LStringLength: public LUnaryOperation<1> {
1663 public:
1664 explicit LStringLength(LOperand* string) : LUnaryOperation<1>(string) {}
1665
1666 DECLARE_CONCRETE_INSTRUCTION(StringLength, "string-length")
1667 DECLARE_HYDROGEN_ACCESSOR(StringLength)
1668 };
1669
1670
1643 class LCheckFunction: public LUnaryOperation<0> { 1671 class LCheckFunction: public LUnaryOperation<0> {
1644 public: 1672 public:
1645 explicit LCheckFunction(LOperand* use) : LUnaryOperation<0>(use) { } 1673 explicit LCheckFunction(LOperand* use) : LUnaryOperation<0>(use) { }
1646 1674
1647 DECLARE_CONCRETE_INSTRUCTION(CheckFunction, "check-function") 1675 DECLARE_CONCRETE_INSTRUCTION(CheckFunction, "check-function")
1648 DECLARE_HYDROGEN_ACCESSOR(CheckFunction) 1676 DECLARE_HYDROGEN_ACCESSOR(CheckFunction)
1649 }; 1677 };
1650 1678
1651 1679
1652 class LCheckInstanceType: public LUnaryOperation<0> { 1680 class LCheckInstanceType: public LUnaryOperation<0> {
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
2032 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2060 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2033 }; 2061 };
2034 2062
2035 #undef DECLARE_HYDROGEN_ACCESSOR 2063 #undef DECLARE_HYDROGEN_ACCESSOR
2036 #undef DECLARE_INSTRUCTION 2064 #undef DECLARE_INSTRUCTION
2037 #undef DECLARE_CONCRETE_INSTRUCTION 2065 #undef DECLARE_CONCRETE_INSTRUCTION
2038 2066
2039 } } // namespace v8::internal 2067 } } // namespace v8::internal
2040 2068
2041 #endif // V8_IA32_LITHIUM_IA32_H_ 2069 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698