Reviewers: Karl Klose,

Description:
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.

Please review this at http://codereview.chromium.org/6046014/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/arm/lithium-arm.cc
  M     src/arm/lithium-codegen-arm.cc


Index: src/arm/lithium-arm.cc
===================================================================
--- src/arm/lithium-arm.cc      (revision 6195)
+++ src/arm/lithium-arm.cc      (working copy)
@@ -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));
 }
Index: src/arm/lithium-codegen-arm.cc
===================================================================
--- src/arm/lithium-codegen-arm.cc      (revision 6195)
+++ src/arm/lithium-codegen-arm.cc      (working copy)
@@ -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