Revision: 6196
Author: [email protected]
Date: Thu Jan  6 04:21:06 2011
Log: ARM: Change a number of lithium instruction operands to be in registers

Using operands which could possible be in stack slots would require a load instruction anyway, so having the register allocator putting them into registers seems most logical.
Review URL: http://codereview.chromium.org/6046014
http://code.google.com/p/v8/source/detail?r=6196

Modified:
 /branches/bleeding_edge/src/arm/lithium-arm.cc
 /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc

=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc      Wed Jan  5 04:01:53 2011
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc      Thu Jan  6 04:21:06 2011
@@ -1289,7 +1289,7 @@


 LInstruction* LChunkBuilder::DoArgumentsLength(HArgumentsLength* length) {
-  return DefineAsRegister(new LArgumentsLength(Use(length->value())));
+ return DefineAsRegister(new LArgumentsLength(UseRegister(length->value())));
 }


@@ -1682,7 +1682,7 @@

 LInstruction* LChunkBuilder::DoBoundsCheck(HBoundsCheck* instr) {
return AssignEnvironment(new LBoundsCheck(UseRegisterAtStart(instr->index()),
-                                            Use(instr->length())));
+                                            UseRegister(instr->length())));
 }


@@ -2022,7 +2022,7 @@
LInstruction* LChunkBuilder::DoAccessArgumentsAt(HAccessArgumentsAt* instr) {
   LOperand* arguments = UseRegister(instr->arguments());
   LOperand* length = UseTempRegister(instr->length());
-  LOperand* index = Use(instr->index());
+  LOperand* index = UseRegister(instr->index());
   LInstruction* result = new LAccessArgumentsAt(arguments, length, index);
   return DefineAsRegister(AssignEnvironment(result));
 }
=======================================
--- /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Thu Jan 6 02:56:23 2011 +++ /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Thu Jan 6 04:21:06 2011
@@ -1590,7 +1590,7 @@
 void LCodeGen::DoAccessArgumentsAt(LAccessArgumentsAt* instr) {
   Register arguments = ToRegister(instr->arguments());
   Register length = ToRegister(instr->length());
-  Operand index = ToOperand(instr->index());
+  Register index = ToRegister(instr->index());
   Register result = ToRegister(instr->result());

   // Bailout index is not a valid argument index. Use unsigned check to get
@@ -1637,7 +1637,7 @@


 void LCodeGen::DoArgumentsLength(LArgumentsLength* instr) {
-  Operand elem = ToOperand(instr->input());
+  Register elem = ToRegister(instr->input());
   Register result = ToRegister(instr->result());

   Label done;
@@ -1837,7 +1837,7 @@


 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) {
-  __ cmp(ToRegister(instr->index()), ToOperand(instr->length()));
+  __ cmp(ToRegister(instr->index()), ToRegister(instr->length()));
   DeoptimizeIf(hs, instr->environment());
 }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to