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

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

Issue 308793010: Inline Array.shift() fast path instead of using a code stub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 6 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "v8.h" 5 #include "v8.h"
6 6
7 #include "lithium-allocator-inl.h" 7 #include "lithium-allocator-inl.h"
8 #include "mips/lithium-mips.h" 8 #include "mips/lithium-mips.h"
9 #include "mips/lithium-codegen-mips.h" 9 #include "mips/lithium-codegen-mips.h"
10 #include "hydrogen-osr.h" 10 #include "hydrogen-osr.h"
(...skipping 2217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2228 } else { 2228 } else {
2229 LOperand* object = UseFixed(instr->object(), a0); 2229 LOperand* object = UseFixed(instr->object(), a0);
2230 LOperand* context = UseFixed(instr->context(), cp); 2230 LOperand* context = UseFixed(instr->context(), cp);
2231 LTransitionElementsKind* result = 2231 LTransitionElementsKind* result =
2232 new(zone()) LTransitionElementsKind(object, context, NULL); 2232 new(zone()) LTransitionElementsKind(object, context, NULL);
2233 return MarkAsCall(result, instr); 2233 return MarkAsCall(result, instr);
2234 } 2234 }
2235 } 2235 }
2236 2236
2237 2237
2238 LInstruction* LChunkBuilder::DoArrayShift(HArrayShift* instr) {
2239 LOperand* object = UseFixed(instr->object(), a0);
2240 LOperand* context = UseFixed(instr->context(), cp);
2241 LArrayShift* result = new(zone()) LArrayShift(context, object);
2242 return MarkAsCall(DefineFixed(result, v0), instr, CANNOT_DEOPTIMIZE_EAGERLY);
2243 }
2244
2245
2246 LInstruction* LChunkBuilder::DoTrapAllocationMemento( 2238 LInstruction* LChunkBuilder::DoTrapAllocationMemento(
2247 HTrapAllocationMemento* instr) { 2239 HTrapAllocationMemento* instr) {
2248 LOperand* object = UseRegister(instr->object()); 2240 LOperand* object = UseRegister(instr->object());
2249 LOperand* temp = TempRegister(); 2241 LOperand* temp = TempRegister();
2250 LTrapAllocationMemento* result = 2242 LTrapAllocationMemento* result =
2251 new(zone()) LTrapAllocationMemento(object, temp); 2243 new(zone()) LTrapAllocationMemento(object, temp);
2252 return AssignEnvironment(result); 2244 return AssignEnvironment(result);
2253 } 2245 }
2254 2246
2255 2247
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
2536 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { 2528 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) {
2537 LOperand* object = UseRegister(instr->object()); 2529 LOperand* object = UseRegister(instr->object());
2538 LOperand* index = UseTempRegister(instr->index()); 2530 LOperand* index = UseTempRegister(instr->index());
2539 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); 2531 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index);
2540 LInstruction* result = DefineSameAsFirst(load); 2532 LInstruction* result = DefineSameAsFirst(load);
2541 return AssignPointerMap(result); 2533 return AssignPointerMap(result);
2542 } 2534 }
2543 2535
2544 2536
2545 } } // namespace v8::internal 2537 } } // namespace v8::internal
OLDNEW
« src/hydrogen.cc ('K') | « src/mips/lithium-mips.h ('k') | src/x64/code-stubs-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698