Commit 08c26b80 authored by Milad Farazmand's avatar Milad Farazmand Committed by Commit Bot

PPC/s390: [wasm][liftoff] Emit safepoints for externref values on the stack

Port 10348e8e

Original Commit Message:

    With this CL we emit safepoint maps for externref values on the Liftoff
    value stack. With that there is support for externref parameters and
    locals in Liftoff, as well as for intermediate values of type
    externref.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I369c0e2e7fb1c4681101a149b01e1a9580051d45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398845Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#69747}
parent 9e8c54f8
...@@ -80,13 +80,7 @@ int LiftoffAssembler::SlotSizeForType(ValueType type) { ...@@ -80,13 +80,7 @@ int LiftoffAssembler::SlotSizeForType(ValueType type) {
} }
bool LiftoffAssembler::NeedsAlignment(ValueType type) { bool LiftoffAssembler::NeedsAlignment(ValueType type) {
switch (type.kind()) { return (type.kind() == ValueType::kS128 || type.is_reference_type());
case ValueType::kS128:
return true;
default:
// No alignment because all other types are kStackSlotSize.
return false;
}
} }
void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value, void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
......
...@@ -79,13 +79,7 @@ int LiftoffAssembler::SlotSizeForType(ValueType type) { ...@@ -79,13 +79,7 @@ int LiftoffAssembler::SlotSizeForType(ValueType type) {
} }
bool LiftoffAssembler::NeedsAlignment(ValueType type) { bool LiftoffAssembler::NeedsAlignment(ValueType type) {
switch (type.kind()) { return (type.kind() == ValueType::kS128 || type.is_reference_type());
case ValueType::kS128:
return true;
default:
// No alignment because all other types are kStackSlotSize.
return false;
}
} }
void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value, void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
......
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