Commit d14225d0 authored by Junliang Yan's avatar Junliang Yan Committed by Commit Bot

PPC: Reland "Reland "[wasm][liftoff] Respect CallDescriptor linkage""

Port c2a1d633

Drive-by: port code-generator-s390.cc changes
Change-Id: I2090cf136d62cc9db1f17d158b88a1e58cc430d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740341Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73273}
parent 2f3ebfa9
...@@ -119,6 +119,12 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -119,6 +119,12 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
// Returns the pc offset at which the frame ends. // Returns the pc offset at which the frame ends.
int LeaveFrame(StackFrame::Type type, int stack_adjustment = 0); int LeaveFrame(StackFrame::Type type, int stack_adjustment = 0);
void AllocateStackSpace(int bytes) {
DCHECK_GE(bytes, 0);
if (bytes == 0) return;
Add(sp, sp, -bytes, r0);
}
// Push a fixed frame, consisting of lr, fp, constant pool. // Push a fixed frame, consisting of lr, fp, constant pool.
void PushCommonFrame(Register marker_reg = no_reg); void PushCommonFrame(Register marker_reg = no_reg);
......
...@@ -1735,10 +1735,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( ...@@ -1735,10 +1735,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
// Slot-sized arguments are never padded but there may be a gap if // Slot-sized arguments are never padded but there may be a gap if
// the slot allocator reclaimed other padding slots. Adjust the stack // the slot allocator reclaimed other padding slots. Adjust the stack
// here to skip any gap. // here to skip any gap.
if (slots > pushed_slots) { __ AllocateStackSpace((slots - pushed_slots) * kSystemPointerSize);
__ addi(sp, sp,
Operand(-((slots - pushed_slots) * kSystemPointerSize)));
}
switch (rep) { switch (rep) {
case MachineRepresentation::kFloat32: case MachineRepresentation::kFloat32:
__ StoreSingleU(i.InputDoubleRegister(1), __ StoreSingleU(i.InputDoubleRegister(1),
...@@ -4076,10 +4073,8 @@ void CodeGenerator::AssembleConstructFrame() { ...@@ -4076,10 +4073,8 @@ void CodeGenerator::AssembleConstructFrame() {
} }
const int returns = frame()->GetReturnSlotCount(); const int returns = frame()->GetReturnSlotCount();
if (returns != 0) { // Create space for returns.
// Create space for returns. __ AllocateStackSpace(returns * kSystemPointerSize);
__ Add(sp, sp, -returns * kSystemPointerSize, r0);
}
} }
void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) { void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) {
......
...@@ -1973,10 +1973,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( ...@@ -1973,10 +1973,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
// Slot-sized arguments are never padded but there may be a gap if // Slot-sized arguments are never padded but there may be a gap if
// the slot allocator reclaimed other padding slots. Adjust the stack // the slot allocator reclaimed other padding slots. Adjust the stack
// here to skip any gap. // here to skip any gap.
if (slots > pushed_slots) { __ AllocateStackSpace((slots - pushed_slots) * kSystemPointerSize);
__ lay(sp,
MemOperand(sp, -((slots - pushed_slots) * kSystemPointerSize)));
}
switch (rep) { switch (rep) {
case MachineRepresentation::kFloat32: case MachineRepresentation::kFloat32:
__ lay(sp, MemOperand(sp, -kSystemPointerSize)); __ lay(sp, MemOperand(sp, -kSystemPointerSize));
...@@ -4397,10 +4394,8 @@ void CodeGenerator::AssembleConstructFrame() { ...@@ -4397,10 +4394,8 @@ void CodeGenerator::AssembleConstructFrame() {
} }
const int returns = frame()->GetReturnSlotCount(); const int returns = frame()->GetReturnSlotCount();
if (returns != 0) { // Create space for returns.
// Create space for returns. __ AllocateStackSpace(returns * kSystemPointerSize);
__ lay(sp, MemOperand(sp, -returns * kSystemPointerSize));
}
} }
void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) { void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) {
......
...@@ -1796,7 +1796,7 @@ void LiftoffAssembler::DeallocateStackSlot(uint32_t size) { ...@@ -1796,7 +1796,7 @@ void LiftoffAssembler::DeallocateStackSlot(uint32_t size) {
bailout(kUnsupportedArchitecture, "DeallocateStackSlot"); bailout(kUnsupportedArchitecture, "DeallocateStackSlot");
} }
void LiftoffStackSlots::Construct() { void LiftoffStackSlots::Construct(int param_slots) {
asm_->bailout(kUnsupportedArchitecture, "LiftoffStackSlots::Construct"); asm_->bailout(kUnsupportedArchitecture, "LiftoffStackSlots::Construct");
} }
......
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