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

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

Issue 6009005: Support load function prototype in hydrogen/lithium. (Closed)
Patch Set: Created 10 years 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 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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 // LHasInstanceTypeAndBranch 123 // LHasInstanceTypeAndBranch
124 // LInteger32ToDouble 124 // LInteger32ToDouble
125 // LIsNull 125 // LIsNull
126 // LIsNullAndBranch 126 // LIsNullAndBranch
127 // LIsObject 127 // LIsObject
128 // LIsObjectAndBranch 128 // LIsObjectAndBranch
129 // LIsSmi 129 // LIsSmi
130 // LIsSmiAndBranch 130 // LIsSmiAndBranch
131 // LLoadNamedField 131 // LLoadNamedField
132 // LLoadNamedGeneric 132 // LLoadNamedGeneric
133 // LLoadFunctionPrototype
133 // LNumberTagD 134 // LNumberTagD
134 // LNumberTagI 135 // LNumberTagI
135 // LPushArgument 136 // LPushArgument
136 // LReturn 137 // LReturn
137 // LSmiTag 138 // LSmiTag
138 // LStoreGlobal 139 // LStoreGlobal
139 // LTaggedToI 140 // LTaggedToI
140 // LThrow 141 // LThrow
141 // LTypeof 142 // LTypeof
142 // LTypeofIs 143 // LTypeofIs
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 V(ClassOfTest) \ 220 V(ClassOfTest) \
220 V(ClassOfTestAndBranch) \ 221 V(ClassOfTestAndBranch) \
221 V(Label) \ 222 V(Label) \
222 V(LazyBailout) \ 223 V(LazyBailout) \
223 V(LoadElements) \ 224 V(LoadElements) \
224 V(LoadGlobal) \ 225 V(LoadGlobal) \
225 V(LoadKeyedFastElement) \ 226 V(LoadKeyedFastElement) \
226 V(LoadKeyedGeneric) \ 227 V(LoadKeyedGeneric) \
227 V(LoadNamedField) \ 228 V(LoadNamedField) \
228 V(LoadNamedGeneric) \ 229 V(LoadNamedGeneric) \
230 V(LoadFunctionPrototype) \
229 V(ModI) \ 231 V(ModI) \
230 V(MulI) \ 232 V(MulI) \
231 V(NumberTagD) \ 233 V(NumberTagD) \
232 V(NumberTagI) \ 234 V(NumberTagI) \
233 V(NumberUntagD) \ 235 V(NumberUntagD) \
234 V(ObjectLiteral) \ 236 V(ObjectLiteral) \
235 V(OsrEntry) \ 237 V(OsrEntry) \
236 V(Parameter) \ 238 V(Parameter) \
237 V(Power) \ 239 V(Power) \
238 V(PushArgument) \ 240 V(PushArgument) \
(...skipping 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 explicit LLoadNamedGeneric(LOperand* object) : LUnaryOperation(object) { } 1266 explicit LLoadNamedGeneric(LOperand* object) : LUnaryOperation(object) { }
1265 1267
1266 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") 1268 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic")
1267 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) 1269 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric)
1268 1270
1269 LOperand* object() const { return input(); } 1271 LOperand* object() const { return input(); }
1270 Handle<Object> name() const { return hydrogen()->name(); } 1272 Handle<Object> name() const { return hydrogen()->name(); }
1271 }; 1273 };
1272 1274
1273 1275
1276 class LLoadFunctionPrototype: public LUnaryOperation {
1277 public:
1278 LLoadFunctionPrototype(LOperand* function, LOperand* temporary)
1279 : LUnaryOperation(function), temporary_(temporary) { }
1280
1281 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype")
1282 DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype)
1283
1284 LOperand* function() const { return input(); }
1285 LOperand* temporary() const { return temporary_; }
1286
1287 private:
1288 LOperand* temporary_;
1289 };
1290
1291
1274 class LLoadElements: public LUnaryOperation { 1292 class LLoadElements: public LUnaryOperation {
1275 public: 1293 public:
1276 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { } 1294 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { }
1277 1295
1278 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements") 1296 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements")
1279 }; 1297 };
1280 1298
1281 1299
1282 class LLoadKeyedFastElement: public LBinaryOperation { 1300 class LLoadKeyedFastElement: public LBinaryOperation {
1283 public: 1301 public:
(...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2137 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2120 }; 2138 };
2121 2139
2122 #undef DECLARE_HYDROGEN_ACCESSOR 2140 #undef DECLARE_HYDROGEN_ACCESSOR
2123 #undef DECLARE_INSTRUCTION 2141 #undef DECLARE_INSTRUCTION
2124 #undef DECLARE_CONCRETE_INSTRUCTION 2142 #undef DECLARE_CONCRETE_INSTRUCTION
2125 2143
2126 } } // namespace v8::internal 2144 } } // namespace v8::internal
2127 2145
2128 #endif // V8_IA32_LITHIUM_IA32_H_ 2146 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698