summaryrefslogtreecommitdiff
path: root/chromium/v8/src/wasm/graph-builder-interface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/wasm/graph-builder-interface.cc')
-rw-r--r--chromium/v8/src/wasm/graph-builder-interface.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/chromium/v8/src/wasm/graph-builder-interface.cc b/chromium/v8/src/wasm/graph-builder-interface.cc
index 760e9669795..31a06d5a138 100644
--- a/chromium/v8/src/wasm/graph-builder-interface.cc
+++ b/chromium/v8/src/wasm/graph-builder-interface.cc
@@ -88,6 +88,7 @@ class WasmGraphBuildingInterface {
struct TryInfo : public ZoneObject {
SsaEnv* catch_env;
TFNode* exception = nullptr;
+ bool first_catch = true;
bool might_throw() const { return exception != nullptr; }
@@ -924,6 +925,10 @@ class WasmGraphBuildingInterface {
TFNode* exception = block->try_info->exception;
SetEnv(block->try_info->catch_env);
+ if (block->try_info->first_catch) {
+ LoadContextIntoSsa(ssa_env_, decoder);
+ block->try_info->first_catch = false;
+ }
TFNode* if_catch = nullptr;
TFNode* if_no_catch = nullptr;
@@ -1001,6 +1006,9 @@ class WasmGraphBuildingInterface {
}
SetEnv(block->try_info->catch_env);
+ if (block->try_info->first_catch) {
+ LoadContextIntoSsa(ssa_env_, decoder);
+ }
}
void AtomicOp(FullDecoder* decoder, WasmOpcode opcode,