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

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

Issue 6243008: Support StringCharCodeAt in hydrogen/lithium. (Closed)
Patch Set: Addressed Florian's comments. 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 // LOsrEntry 107 // LOsrEntry
108 // LParameter 108 // LParameter
109 // LRegExpConstructResult 109 // LRegExpConstructResult
110 // LStackCheck 110 // LStackCheck
111 // LStoreKeyed 111 // LStoreKeyed
112 // LStoreKeyedFastElement 112 // LStoreKeyedFastElement
113 // LStoreKeyedGeneric 113 // LStoreKeyedGeneric
114 // LStoreNamed 114 // LStoreNamed
115 // LStoreNamedField 115 // LStoreNamedField
116 // LStoreNamedGeneric 116 // LStoreNamedGeneric
117 // LStringCharCodeAt
117 // LBitNotI 118 // LBitNotI
118 // LCallNew 119 // LCallNew
119 // LCheckFunction 120 // LCheckFunction
120 // LCheckPrototypeMaps 121 // LCheckPrototypeMaps
121 // LCheckInstanceType 122 // LCheckInstanceType
122 // LCheckMap 123 // LCheckMap
123 // LCheckSmi 124 // LCheckSmi
124 // LClassOfTest 125 // LClassOfTest
125 // LDeleteProperty 126 // LDeleteProperty
126 // LDoubleToI 127 // LDoubleToI
127 // LFixedArrayLength 128 // LFixedArrayLength
128 // LHasCachedArrayIndex 129 // LHasCachedArrayIndex
129 // LHasInstanceType 130 // LHasInstanceType
130 // LInteger32ToDouble 131 // LInteger32ToDouble
131 // LIsNull 132 // LIsNull
132 // LIsObject 133 // LIsObject
133 // LIsSmi 134 // LIsSmi
134 // LJSArrayLength 135 // LJSArrayLength
135 // LLoadNamedField 136 // LLoadNamedField
136 // LLoadNamedGeneric 137 // LLoadNamedGeneric
137 // LLoadFunctionPrototype 138 // LLoadFunctionPrototype
138 // LNumberTagD 139 // LNumberTagD
139 // LNumberTagI 140 // LNumberTagI
140 // LPushArgument 141 // LPushArgument
141 // LReturn 142 // LReturn
142 // LSmiTag 143 // LSmiTag
143 // LStoreGlobal 144 // LStoreGlobal
145 // LStringLength
144 // LTaggedToI 146 // LTaggedToI
145 // LThrow 147 // LThrow
146 // LTypeof 148 // LTypeof
147 // LTypeofIs 149 // LTypeofIs
148 // LUnaryMathOperation 150 // LUnaryMathOperation
149 // LValueOf 151 // LValueOf
150 // LUnknownOSRValue 152 // LUnknownOSRValue
151 153
152 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \ 154 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \
153 V(ControlInstruction) \ 155 V(ControlInstruction) \
(...skipping 92 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 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 1587
1584 class LStoreKeyedGeneric: public LStoreKeyed { 1588 class LStoreKeyedGeneric: public LStoreKeyed {
1585 public: 1589 public:
1586 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val) 1590 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val)
1587 : LStoreKeyed(obj, key, val) { } 1591 : LStoreKeyed(obj, key, val) { }
1588 1592
1589 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 1593 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
1590 }; 1594 };
1591 1595
1592 1596
1597 class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> {
1598 public:
1599 LStringCharCodeAt(LOperand* string, LOperand* index) {
1600 inputs_[0] = string;
1601 inputs_[1] = index;
1602 }
1603
1604 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at")
1605 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt)
1606
1607 LOperand* string() { return inputs_[0]; }
1608 LOperand* index() { return inputs_[1]; }
1609 };
1610
1611
1612 class LStringLength: public LTemplateInstruction<1, 1> {
fschneider 2011/01/19 16:23:44 For consistency I'd write public LTemplateInstru
Vitaly Repeshko 2011/01/19 20:08:41 Done.
1613 public:
1614 explicit LStringLength(LOperand* string) {
1615 inputs_[0] = string;
1616 }
1617
1618 DECLARE_CONCRETE_INSTRUCTION(StringLength, "string-length")
1619 DECLARE_HYDROGEN_ACCESSOR(StringLength)
1620
1621 LOperand* string() { return inputs_[0]; }
1622 };
1623
1624
1593 class LCheckFunction: public LTemplateInstruction<0, 1> { 1625 class LCheckFunction: public LTemplateInstruction<0, 1> {
1594 public: 1626 public:
1595 explicit LCheckFunction(LOperand* value) { 1627 explicit LCheckFunction(LOperand* value) {
1596 inputs_[0] = value; 1628 inputs_[0] = value;
1597 } 1629 }
1598 1630
1599 DECLARE_CONCRETE_INSTRUCTION(CheckFunction, "check-function") 1631 DECLARE_CONCRETE_INSTRUCTION(CheckFunction, "check-function")
1600 DECLARE_HYDROGEN_ACCESSOR(CheckFunction) 1632 DECLARE_HYDROGEN_ACCESSOR(CheckFunction)
1601 }; 1633 };
1602 1634
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
1986 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2018 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
1987 }; 2019 };
1988 2020
1989 #undef DECLARE_HYDROGEN_ACCESSOR 2021 #undef DECLARE_HYDROGEN_ACCESSOR
1990 #undef DECLARE_INSTRUCTION 2022 #undef DECLARE_INSTRUCTION
1991 #undef DECLARE_CONCRETE_INSTRUCTION 2023 #undef DECLARE_CONCRETE_INSTRUCTION
1992 2024
1993 } } // namespace v8::internal 2025 } } // namespace v8::internal
1994 2026
1995 #endif // V8_IA32_LITHIUM_IA32_H_ 2027 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698