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

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

Issue 7600025: Create a common subclass for arrays (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: implement x64, arm, mips Created 9 years, 4 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 1523 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 TempRegister()); 1534 TempRegister());
1535 } 1535 }
1536 1536
1537 1537
1538 LInstruction* LChunkBuilder::DoJSArrayLength(HJSArrayLength* instr) { 1538 LInstruction* LChunkBuilder::DoJSArrayLength(HJSArrayLength* instr) {
1539 LOperand* array = UseRegisterAtStart(instr->value()); 1539 LOperand* array = UseRegisterAtStart(instr->value());
1540 return DefineAsRegister(new LJSArrayLength(array)); 1540 return DefineAsRegister(new LJSArrayLength(array));
1541 } 1541 }
1542 1542
1543 1543
1544 LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) { 1544 LInstruction* LChunkBuilder::DoFixedArrayBaseLength(
1545 HFixedArrayBaseLength* instr) {
1545 LOperand* array = UseRegisterAtStart(instr->value()); 1546 LOperand* array = UseRegisterAtStart(instr->value());
1546 return DefineAsRegister(new LFixedArrayLength(array)); 1547 return DefineAsRegister(new LFixedArrayBaseLength(array));
1547 } 1548 }
1548 1549
1549 1550
1550 LInstruction* LChunkBuilder::DoExternalArrayLength(
1551 HExternalArrayLength* instr) {
1552 LOperand* array = UseRegisterAtStart(instr->value());
1553 return DefineAsRegister(new LExternalArrayLength(array));
1554 }
1555
1556
1557 LInstruction* LChunkBuilder::DoElementsKind(HElementsKind* instr) { 1551 LInstruction* LChunkBuilder::DoElementsKind(HElementsKind* instr) {
1558 LOperand* object = UseRegisterAtStart(instr->value()); 1552 LOperand* object = UseRegisterAtStart(instr->value());
1559 return DefineAsRegister(new LElementsKind(object)); 1553 return DefineAsRegister(new LElementsKind(object));
1560 } 1554 }
1561 1555
1562 1556
1563 LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { 1557 LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) {
1564 LOperand* object = UseRegister(instr->value()); 1558 LOperand* object = UseRegister(instr->value());
1565 LValueOf* result = new LValueOf(object, TempRegister()); 1559 LValueOf* result = new LValueOf(object, TempRegister());
1566 return AssignEnvironment(DefineSameAsFirst(result)); 1560 return AssignEnvironment(DefineSameAsFirst(result));
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 LOperand* key = UseOrConstantAtStart(instr->key()); 2259 LOperand* key = UseOrConstantAtStart(instr->key());
2266 LOperand* object = UseOrConstantAtStart(instr->object()); 2260 LOperand* object = UseOrConstantAtStart(instr->object());
2267 LIn* result = new LIn(context, key, object); 2261 LIn* result = new LIn(context, key, object);
2268 return MarkAsCall(DefineFixed(result, eax), instr); 2262 return MarkAsCall(DefineFixed(result, eax), instr);
2269 } 2263 }
2270 2264
2271 2265
2272 } } // namespace v8::internal 2266 } } // namespace v8::internal
2273 2267
2274 #endif // V8_TARGET_ARCH_IA32 2268 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698