Commit 7acffecc authored by Tao Pan's avatar Tao Pan Committed by Commit Bot

[x64] Allow kX64Push Instruction to use spill slot as Operand

IA support both "push reg" and "push [mem]" assemble instruction.
Use OperandGenerator::UseAny() for initializing Operand of kX64Push with
should be more willing to use spill slots (Use constraints are marked
as register-beneficial; UseAny are not)

UnallocatedOperand: :REGISTER_OR_SLOT. That way, the register allocator
Change-Id: I8ffd66915c8acd64221182710257232ef19f06d6
Reviewed-on: https://chromium-review.googlesource.com/c/1337312Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57708}
parent 2359181f
......@@ -1543,7 +1543,7 @@ void InstructionSelector::EmitPrepareArguments(
opcode |= AddressingModeField::encode(mode);
Emit(opcode, 0, outputs, input_count, inputs);
} else {
Emit(kX64Push, g.NoOutput(), g.Use(input.node));
Emit(kX64Push, g.NoOutput(), g.UseAny(input.node));
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment