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

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

Issue 296113008: Allow HPushArgument to handle more than one argument. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebase, and use int instead of unsigned Created 6 years, 7 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
« no previous file with comments | « src/arm64/lithium-arm64.h ('k') | src/arm64/lithium-codegen-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 "arm64/lithium-arm64.h" 8 #include "arm64/lithium-arm64.h"
9 #include "arm64/lithium-codegen-arm64.h" 9 #include "arm64/lithium-codegen-arm64.h"
10 #include "hydrogen-osr.h" 10 #include "hydrogen-osr.h"
(...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after
1988 : exponent_type.IsDouble() 1988 : exponent_type.IsDouble()
1989 ? UseFixedDouble(instr->right(), d1) 1989 ? UseFixedDouble(instr->right(), d1)
1990 : UseFixed(instr->right(), x11); 1990 : UseFixed(instr->right(), x11);
1991 LPower* result = new(zone()) LPower(left, right); 1991 LPower* result = new(zone()) LPower(left, right);
1992 return MarkAsCall(DefineFixedDouble(result, d0), 1992 return MarkAsCall(DefineFixedDouble(result, d0),
1993 instr, 1993 instr,
1994 CAN_DEOPTIMIZE_EAGERLY); 1994 CAN_DEOPTIMIZE_EAGERLY);
1995 } 1995 }
1996 1996
1997 1997
1998 LInstruction* LChunkBuilder::DoPushArgument(HPushArgument* instr) { 1998 LInstruction* LChunkBuilder::DoPushArguments(HPushArguments* instr) {
1999 LOperand* argument = UseRegister(instr->argument()); 1999 int argc = instr->OperandCount();
2000 return new(zone()) LPushArgument(argument); 2000 AddInstruction(new(zone()) LPreparePushArguments(argc), instr);
2001
2002 LPushArguments* push_args = new(zone()) LPushArguments(zone());
2003
2004 for (int i = 0; i < argc; ++i) {
2005 if (push_args->ShouldSplitPush()) {
2006 AddInstruction(push_args, instr);
2007 push_args = new(zone()) LPushArguments(zone());
2008 }
2009 push_args->AddArgument(UseRegister(instr->argument(i)));
2010 }
2011
2012 return push_args;
2001 } 2013 }
2002 2014
2003 2015
2004 LInstruction* LChunkBuilder::DoRegExpLiteral(HRegExpLiteral* instr) { 2016 LInstruction* LChunkBuilder::DoRegExpLiteral(HRegExpLiteral* instr) {
2005 LOperand* context = UseFixed(instr->context(), cp); 2017 LOperand* context = UseFixed(instr->context(), cp);
2006 return MarkAsCall( 2018 return MarkAsCall(
2007 DefineFixed(new(zone()) LRegExpLiteral(context), x0), instr); 2019 DefineFixed(new(zone()) LRegExpLiteral(context), x0), instr);
2008 } 2020 }
2009 2021
2010 2022
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
2709 2721
2710 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { 2722 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) {
2711 LOperand* receiver = UseRegister(instr->receiver()); 2723 LOperand* receiver = UseRegister(instr->receiver());
2712 LOperand* function = UseRegister(instr->function()); 2724 LOperand* function = UseRegister(instr->function());
2713 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); 2725 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function);
2714 return AssignEnvironment(DefineAsRegister(result)); 2726 return AssignEnvironment(DefineAsRegister(result));
2715 } 2727 }
2716 2728
2717 2729
2718 } } // namespace v8::internal 2730 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm64/lithium-arm64.h ('k') | src/arm64/lithium-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698