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

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

Issue 6410112: Implement crankshaft support for pixel array loads. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: review feedback, x64 and arm impl 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
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 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 V(Label) \ 225 V(Label) \
226 V(LazyBailout) \ 226 V(LazyBailout) \
227 V(LoadContextSlot) \ 227 V(LoadContextSlot) \
228 V(LoadElements) \ 228 V(LoadElements) \
229 V(LoadGlobal) \ 229 V(LoadGlobal) \
230 V(LoadKeyedFastElement) \ 230 V(LoadKeyedFastElement) \
231 V(LoadKeyedGeneric) \ 231 V(LoadKeyedGeneric) \
232 V(LoadNamedField) \ 232 V(LoadNamedField) \
233 V(LoadNamedGeneric) \ 233 V(LoadNamedGeneric) \
234 V(LoadFunctionPrototype) \ 234 V(LoadFunctionPrototype) \
235 V(LoadPixelArrayElement) \
236 V(LoadPixelArrayExternalPointer) \
235 V(ModI) \ 237 V(ModI) \
236 V(MulI) \ 238 V(MulI) \
237 V(NumberTagD) \ 239 V(NumberTagD) \
238 V(NumberTagI) \ 240 V(NumberTagI) \
239 V(NumberUntagD) \ 241 V(NumberUntagD) \
240 V(ObjectLiteral) \ 242 V(ObjectLiteral) \
241 V(OsrEntry) \ 243 V(OsrEntry) \
242 V(Parameter) \ 244 V(Parameter) \
245 V(PixelArrayLength) \
243 V(Power) \ 246 V(Power) \
244 V(PushArgument) \ 247 V(PushArgument) \
245 V(RegExpLiteral) \ 248 V(RegExpLiteral) \
246 V(Return) \ 249 V(Return) \
247 V(ShiftI) \ 250 V(ShiftI) \
248 V(SmiTag) \ 251 V(SmiTag) \
249 V(SmiUntag) \ 252 V(SmiUntag) \
250 V(StackCheck) \ 253 V(StackCheck) \
251 V(StoreGlobal) \ 254 V(StoreGlobal) \
252 V(StoreKeyedFastElement) \ 255 V(StoreKeyedFastElement) \
(...skipping 842 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 public: 1098 public:
1096 explicit LJSArrayLength(LOperand* value) { 1099 explicit LJSArrayLength(LOperand* value) {
1097 inputs_[0] = value; 1100 inputs_[0] = value;
1098 } 1101 }
1099 1102
1100 DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length") 1103 DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length")
1101 DECLARE_HYDROGEN_ACCESSOR(JSArrayLength) 1104 DECLARE_HYDROGEN_ACCESSOR(JSArrayLength)
1102 }; 1105 };
1103 1106
1104 1107
1108 class LPixelArrayLength: public LTemplateInstruction<1, 1, 0> {
1109 public:
1110 explicit LPixelArrayLength(LOperand* value) {
1111 inputs_[0] = value;
1112 }
1113
1114 DECLARE_CONCRETE_INSTRUCTION(PixelArrayLength, "pixel-array-length")
1115 DECLARE_HYDROGEN_ACCESSOR(PixelArrayLength)
1116 };
1117
1118
1105 class LFixedArrayLength: public LTemplateInstruction<1, 1, 0> { 1119 class LFixedArrayLength: public LTemplateInstruction<1, 1, 0> {
1106 public: 1120 public:
1107 explicit LFixedArrayLength(LOperand* value) { 1121 explicit LFixedArrayLength(LOperand* value) {
1108 inputs_[0] = value; 1122 inputs_[0] = value;
1109 } 1123 }
1110 1124
1111 DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length") 1125 DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length")
1112 DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength) 1126 DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength)
1113 }; 1127 };
1114 1128
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 class LLoadElements: public LTemplateInstruction<1, 1, 0> { 1271 class LLoadElements: public LTemplateInstruction<1, 1, 0> {
1258 public: 1272 public:
1259 explicit LLoadElements(LOperand* object) { 1273 explicit LLoadElements(LOperand* object) {
1260 inputs_[0] = object; 1274 inputs_[0] = object;
1261 } 1275 }
1262 1276
1263 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements") 1277 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements")
1264 }; 1278 };
1265 1279
1266 1280
1281 class LLoadPixelArrayExternalPointer: public LTemplateInstruction<1, 1, 0> {
1282 public:
1283 explicit LLoadPixelArrayExternalPointer(LOperand* object) {
1284 inputs_[0] = object;
1285 }
1286
1287 DECLARE_CONCRETE_INSTRUCTION(LoadPixelArrayExternalPointer,
1288 "load-pixel-array-external-pointer")
1289 };
1290
1291
1267 class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> { 1292 class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> {
1268 public: 1293 public:
1269 LLoadKeyedFastElement(LOperand* elements, LOperand* key) { 1294 LLoadKeyedFastElement(LOperand* elements, LOperand* key) {
1270 inputs_[0] = elements; 1295 inputs_[0] = elements;
1271 inputs_[1] = key; 1296 inputs_[1] = key;
1272 } 1297 }
1273 1298
1274 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastElement, "load-keyed-fast-element") 1299 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastElement, "load-keyed-fast-element")
1275 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastElement) 1300 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastElement)
1276 1301
1277 LOperand* elements() { return inputs_[0]; } 1302 LOperand* elements() { return inputs_[0]; }
1278 LOperand* key() { return inputs_[1]; } 1303 LOperand* key() { return inputs_[1]; }
1279 }; 1304 };
1280 1305
1281 1306
1307 class LLoadPixelArrayElement: public LTemplateInstruction<1, 2, 0> {
1308 public:
1309 LLoadPixelArrayElement(LOperand* external_pointer, LOperand* key) {
1310 inputs_[0] = external_pointer;
1311 inputs_[1] = key;
1312 }
1313
1314 DECLARE_CONCRETE_INSTRUCTION(LoadPixelArrayElement,
1315 "load-pixel-array-element")
1316 DECLARE_HYDROGEN_ACCESSOR(LoadPixelArrayElement)
1317
1318 LOperand* external_pointer() { return inputs_[0]; }
1319 LOperand* key() { return inputs_[1]; }
1320 };
1321
1322
1282 class LLoadKeyedGeneric: public LTemplateInstruction<1, 2, 0> { 1323 class LLoadKeyedGeneric: public LTemplateInstruction<1, 2, 0> {
1283 public: 1324 public:
1284 LLoadKeyedGeneric(LOperand* obj, LOperand* key) { 1325 LLoadKeyedGeneric(LOperand* obj, LOperand* key) {
1285 inputs_[0] = obj; 1326 inputs_[0] = obj;
1286 inputs_[1] = key; 1327 inputs_[1] = key;
1287 } 1328 }
1288 1329
1289 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") 1330 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic")
1290 1331
1291 LOperand* object() { return inputs_[0]; } 1332 LOperand* object() { return inputs_[0]; }
(...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after
2022 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2063 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2023 }; 2064 };
2024 2065
2025 #undef DECLARE_HYDROGEN_ACCESSOR 2066 #undef DECLARE_HYDROGEN_ACCESSOR
2026 #undef DECLARE_INSTRUCTION 2067 #undef DECLARE_INSTRUCTION
2027 #undef DECLARE_CONCRETE_INSTRUCTION 2068 #undef DECLARE_CONCRETE_INSTRUCTION
2028 2069
2029 } } // namespace v8::int 2070 } } // namespace v8::int
2030 2071
2031 #endif // V8_X64_LITHIUM_X64_H_ 2072 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698