mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 13:11:39 +01:00
0a3a01b67d
Summary: This adds backend support for throw, rethrow, try, and try_end instructions. This needs the corresponding clang builtin support: https://reviews.llvm.org/D34783 This follows the Wasm exception handling proposal in https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md Reviewers: sunfish, dschuff Reviewed By: dschuff Subscribers: jfb, sbc100, jgravelle-google Differential Revision: https://reviews.llvm.org/D34826 llvm-svn: 306774
23 lines
583 B
LLVM
23 lines
583 B
LLVM
; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -disable-wasm-explicit-locals | FileCheck %s
|
|
|
|
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
|
|
target triple = "wasm32-unknown-unknown-wasm"
|
|
|
|
declare void @llvm.wasm.throw(i32, i8*)
|
|
declare void @llvm.wasm.rethrow()
|
|
|
|
; CHECK-LABEL: throw:
|
|
; CHECK-NEXT: i32.const $push0=, 0
|
|
; CHECK-NEXT: throw 0, $pop0
|
|
define void @throw() {
|
|
call void @llvm.wasm.throw(i32 0, i8* null)
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: rethrow:
|
|
; CHECK-NEXT: rethrow 0
|
|
define void @rethrow() {
|
|
call void @llvm.wasm.rethrow()
|
|
ret void
|
|
}
|