aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp2
-rw-r--r--llvm/test/MC/WebAssembly/basic-assembly.s16
2 files changed, 16 insertions, 2 deletions
diff --git a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
index 60f82fa..c257e98 100644
--- a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
+++ b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
@@ -303,7 +303,7 @@ public:
// assembly, so we add a dummy one explicitly (since we have no control
// over signature tables here, we assume these will be regenerated when
// the wasm module is generated).
- if (BaseName == "block" || BaseName == "loop") {
+ if (BaseName == "block" || BaseName == "loop" || BaseName == "try") {
Operands.push_back(make_unique<WebAssemblyOperand>(
WebAssemblyOperand::Integer, NameLoc, NameLoc,
WebAssemblyOperand::IntOp{-1}));
diff --git a/llvm/test/MC/WebAssembly/basic-assembly.s b/llvm/test/MC/WebAssembly/basic-assembly.s
index a22fe79..cfffda5 100644
--- a/llvm/test/MC/WebAssembly/basic-assembly.s
+++ b/llvm/test/MC/WebAssembly/basic-assembly.s
@@ -1,4 +1,4 @@
-# RUN: llvm-mc -triple=wasm32-unknown-unknown -mattr=+simd128,+nontrapping-fptoint < %s | FileCheck %s
+# RUN: llvm-mc -triple=wasm32-unknown-unknown -mattr=+simd128,+nontrapping-fptoint,+exception-handling < %s | FileCheck %s
.text
.type test0,@function
@@ -46,6 +46,13 @@ test0:
# TODO: enable once instruction has been added.
#i32x4.trunc_s/f32x4:sat
i32.trunc_s/f32
+ try
+.LBB0_3:
+ i32.catch 0
+.LBB0_4:
+ catch_all
+.LBB0_5:
+ end_try
#i32.trunc_s:sat/f32
get_global __stack_pointer@GLOBAL
end_function
@@ -88,5 +95,12 @@ test0:
# CHECK-NEXT: get_local 5
# CHECK-NEXT: f32x4.add
# CHECK-NEXT: i32.trunc_s/f32
+# CHECK-NEXT: try
+# CHECK-NEXT: .LBB0_3:
+# CHECK-NEXT: i32.catch 0
+# CHECK-NEXT: .LBB0_4:
+# CHECK-NEXT: catch_all
+# CHECK-NEXT: .LBB0_5:
+# CHECK-NEXT: end_try
# CHECK-NEXT: get_global __stack_pointer@GLOBAL
# CHECK-NEXT: end_function