Reviewers: ulan, Benedikt Meurer,
Description:
ARM: Optimize NumberTagU
Optimize register constaints for NumberTagU Lithium instruction, and adjust
code
generated to match.
TEST=none
BUG=
Please review this at https://codereview.chromium.org/94983002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+5, -6 lines):
M src/arm/lithium-arm.cc
M src/arm/lithium-codegen-arm.cc
Index: src/arm/lithium-arm.cc
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc
index
2f34d6915f75ab34a9b3e21ea8b12f360fa2f890..d7fd7bf8777457382c22e60bf4fcea12fdf07912
100644
--- a/src/arm/lithium-arm.cc
+++ b/src/arm/lithium-arm.cc
@@ -2020,7 +2020,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr)
{
LOperand* value = UseRegisterAtStart(val);
if (val->CheckFlag(HInstruction::kUint32)) {
LNumberTagU* result = new(zone()) LNumberTagU(value);
- return
AssignEnvironment(AssignPointerMap(DefineSameAsFirst(result)));
+ return
AssignEnvironment(AssignPointerMap(DefineAsRegister(result)));
} else if (val->HasRange() && val->range()->IsInSmiRange()) {
return DefineAsRegister(new(zone()) LSmiTag(value));
} else {
Index: src/arm/lithium-codegen-arm.cc
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index
164ee553daa0fd409d8e786882c1bb576a254fb2..f77a065c38457c67bc0fe357e1744cd3c7bf88a9
100644
--- a/src/arm/lithium-codegen-arm.cc
+++ b/src/arm/lithium-codegen-arm.cc
@@ -4768,14 +4768,13 @@ void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
LNumberTagU* instr_;
};
- LOperand* input = instr->value();
- ASSERT(input->IsRegister() && input->Equals(instr->result()));
- Register reg = ToRegister(input);
+ Register input = ToRegister(instr->value());
+ Register result = ToRegister(instr->result());
DeferredNumberTagU* deferred = new(zone()) DeferredNumberTagU(this,
instr);
- __ cmp(reg, Operand(Smi::kMaxValue));
+ __ cmp(input, Operand(Smi::kMaxValue));
__ b(hi, deferred->entry());
- __ SmiTag(reg, reg);
+ __ SmiTag(result, input);
__ bind(deferred->exit());
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.