Commit 6aea7374 authored by Junliang Yan's avatar Junliang Yan Committed by Commit Bot

PPC/s390: fix AssembleTailCallGap cctest.

both arches don't support push anything to stack except registers

R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com

Bug: 
Change-Id: I5682fc1634bc66c8aa28889abe5b977092b004f6
Reviewed-on: https://chromium-review.googlesource.com/598644Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#47096}
parent fb64e4d6
...@@ -1100,9 +1100,8 @@ void AdjustStackPointerForTailCall( ...@@ -1100,9 +1100,8 @@ void AdjustStackPointerForTailCall(
void CodeGenerator::AssembleTailCallBeforeGap(Instruction* instr, void CodeGenerator::AssembleTailCallBeforeGap(Instruction* instr,
int first_unused_stack_slot) { int first_unused_stack_slot) {
CodeGenerator::PushTypeFlags flags(kImmediatePush | kScalarPush);
ZoneVector<MoveOperands*> pushes(zone()); ZoneVector<MoveOperands*> pushes(zone());
GetPushCompatibleMoves(instr, flags, &pushes); GetPushCompatibleMoves(instr, kRegisterPush, &pushes);
if (!pushes.empty() && if (!pushes.empty() &&
(LocationOperand::cast(pushes.back()->destination()).index() + 1 == (LocationOperand::cast(pushes.back()->destination()).index() + 1 ==
......
...@@ -42,12 +42,12 @@ class CodeGeneratorTester : public InitializedHandleScope { ...@@ -42,12 +42,12 @@ class CodeGeneratorTester : public InitializedHandleScope {
int first_unused_stack_slot, int first_unused_stack_slot,
CodeGeneratorTester::PushTypeFlag push_type) { CodeGeneratorTester::PushTypeFlag push_type) {
generator_.AssembleTailCallBeforeGap(instr, first_unused_stack_slot); generator_.AssembleTailCallBeforeGap(instr, first_unused_stack_slot);
#if defined(V8_TARGET_ARCH_ARM) #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_S390) || \
defined(V8_TARGET_ARCH_PPC)
// Only folding register pushes is supported on ARM. // Only folding register pushes is supported on ARM.
bool supported = ((push_type & CodeGenerator::kRegisterPush) == push_type); bool supported = ((push_type & CodeGenerator::kRegisterPush) == push_type);
#elif defined(V8_TARGET_ARCH_X64) || defined(V8_TARGET_ARCH_IA32) || \ #elif defined(V8_TARGET_ARCH_X64) || defined(V8_TARGET_ARCH_IA32) || \
defined(V8_TARGET_ARCH_X87) || defined(V8_TARGET_ARCH_S390X) || \ defined(V8_TARGET_ARCH_X87)
defined(V8_TARGET_ARCH_PPC64)
bool supported = ((push_type & CodeGenerator::kScalarPush) == push_type); bool supported = ((push_type & CodeGenerator::kScalarPush) == push_type);
#else #else
bool supported = false; bool supported = false;
......
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