Commit 7b326b53 authored by Thibaud Michaud's avatar Thibaud Michaud Committed by Commit Bot

[wasm][liftoff][eh] Encode f64 values in exceptions

R=clemensb@chromium.org

Bug: v8:11453
Change-Id: I9775032093ac1a0883339cb32bb30b7710f08491
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2763877
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73445}
parent 06212c9a
......@@ -3899,6 +3899,14 @@ class LiftoffCompiler {
case kI64:
Store64BitExceptionValue(values_array, index_in_array, value, pinned);
break;
case kF64: {
LiftoffRegister tmp_reg =
pinned.set(__ GetUnusedRegister(reg_class_for(kI64), pinned));
__ emit_type_conversion(kExprI64ReinterpretF64, tmp_reg, value,
nullptr);
Store64BitExceptionValue(values_array, index_in_array, tmp_reg, pinned);
break;
}
default:
UNREACHABLE();
}
......@@ -3998,7 +4006,8 @@ class LiftoffCompiler {
for (size_t param_idx = sig->parameter_count(); param_idx > 0;
--param_idx) {
ValueType type = sig->GetParam(param_idx - 1);
if (type != kWasmI32 && type != kWasmI64 && type != kWasmF32) {
if (type != kWasmI32 && type != kWasmI64 && type != kWasmF32 &&
type != kWasmF64) {
unsupported(decoder, kExceptionHandling,
"unsupported type in exception payload");
return;
......
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