mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-10 05:41:40 +00:00
[WebAssembly] Fix signature parsing for 'try' in AsmParser
Summary: Like `block` or `loop`, `try` can take an optional signature which can be omitted. This patch allows `try`'s signature to be omitted. Also added some tests for EH instructions. Reviewers: aardappel Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53873 llvm-svn: 345888
This commit is contained in:
parent
2a4a060cab
commit
dfc0a29e32
@ -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}));
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user