diff options
-rw-r--r-- | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp | 2 | ||||
-rw-r--r-- | llvm/test/MC/WebAssembly/basic-assembly.s | 16 |
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 |