Index: src/compiler/arm64/instruction-selector-arm64.cc |
diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc |
index e81c5801bc2615348e25c16edea2c66b0bd025ee..427486b25a865941a8032590da1aa709892a788d 100644 |
--- a/src/compiler/arm64/instruction-selector-arm64.cc |
+++ b/src/compiler/arm64/instruction-selector-arm64.cc |
@@ -1168,7 +1168,7 @@ void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) { |
if (aligned_push_count > 0) { |
// TODO(dcarney): it would be better to bump the csp here only |
// and emit paired stores with increment for non c frames. |
- Emit(kArm64Claim | MiscField::encode(aligned_push_count), g.NoOutput()); |
+ Emit(kArm64Claim, g.NoOutput(), g.TempImmediate(aligned_push_count)); |
} |
// Move arguments to the stack. |
{ |
@@ -1176,15 +1176,16 @@ void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) { |
// Emit the uneven pushes. |
if (pushed_count_uneven) { |
Node* input = buffer.pushed_nodes[slot]; |
- Emit(kArm64Poke | MiscField::encode(slot), g.NoOutput(), |
- g.UseRegister(input)); |
+ Emit(kArm64Poke, g.NoOutput(), g.UseRegister(input), |
+ g.TempImmediate(slot)); |
slot--; |
} |
// Now all pushes can be done in pairs. |
for (; slot >= 0; slot -= 2) { |
- Emit(kArm64PokePair | MiscField::encode(slot), g.NoOutput(), |
+ Emit(kArm64PokePair, g.NoOutput(), |
g.UseRegister(buffer.pushed_nodes[slot]), |
- g.UseRegister(buffer.pushed_nodes[slot - 1])); |
+ g.UseRegister(buffer.pushed_nodes[slot - 1]), |
+ g.TempImmediate(slot)); |
} |
} |