Reviewers: m.m.capewell, ulan,
Description:
A64: Fix register usage in LCodeGen::ArgumentsLength
The result should be just stored in a W register
BUG=none
[email protected],[email protected]
LOG=n
Please review this at https://codereview.chromium.org/170363002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+5, -5 lines):
M src/a64/lithium-codegen-a64.cc
Index: src/a64/lithium-codegen-a64.cc
diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
index
3793e325561cbbdcaae9cb029a7e21f8add141e8..abfff857e6541ca78719dbc176dccaf18fd02d54
100644
--- a/src/a64/lithium-codegen-a64.cc
+++ b/src/a64/lithium-codegen-a64.cc
@@ -1648,7 +1648,7 @@ void
LCodeGen::DoArgumentsElements(LArgumentsElements* instr) {
void LCodeGen::DoArgumentsLength(LArgumentsLength* instr) {
Register elements = ToRegister(instr->elements());
- Register result = ToRegister(instr->result());
+ Register result = ToRegister32(instr->result());
Label done;
// If no arguments adaptor frame the number of arguments is fixed.
@@ -1657,10 +1657,10 @@ void LCodeGen::DoArgumentsLength(LArgumentsLength*
instr) {
__ B(eq, &done);
// Arguments adaptor frame present. Get argument length from there.
- __ Ldr(result, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
- __ Ldrsw(result,
- UntagSmiMemOperand(result,
-
ArgumentsAdaptorFrameConstants::kLengthOffset));
+ __ Ldr(result.X(), MemOperand(fp,
StandardFrameConstants::kCallerFPOffset));
+ __ Ldr(result,
+ UntagSmiMemOperand(result.X(),
+
ArgumentsAdaptorFrameConstants::kLengthOffset));
// Argument length is in result register.
__ Bind(&done);
--
--
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.