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