Index: src/arm64/macro-assembler-arm64.cc |
diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc |
index 75814e83a866396c66b89cb601fa2a02e6bf16d1..b4870df9e87a24a770f4811c74d5dfc7ec543d12 100644 |
--- a/src/arm64/macro-assembler-arm64.cc |
+++ b/src/arm64/macro-assembler-arm64.cc |
@@ -2571,11 +2571,11 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
if (expected.is_immediate()) { |
DCHECK(actual.is_immediate()); |
+ Mov(x0, actual.immediate()); |
if (expected.immediate() == actual.immediate()) { |
definitely_matches = true; |
} else { |
- Mov(x0, actual.immediate()); |
if (expected.immediate() == |
SharedFunctionInfo::kDontAdaptArgumentsSentinel) { |
// Don't worry about adapting arguments for builtins that |
@@ -2593,11 +2593,10 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
} else { // expected is a register. |
Operand actual_op = actual.is_immediate() ? Operand(actual.immediate()) |
: Operand(actual.reg()); |
+ Mov(x0, actual_op); |
// If actual == expected perform a regular invocation. |
Cmp(expected.reg(), actual_op); |
B(eq, ®ular_invoke); |
- // Otherwise set up x0 for the argument adaptor. |
- Mov(x0, actual_op); |
} |
// If the argument counts may mismatch, generate a call to the argument |