mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +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
27 lines
1021 B
TableGen
27 lines
1021 B
TableGen
//===- IntrinsicsWebAssembly.td - Defines wasm intrinsics --*- tablegen -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// \brief This file defines all of the WebAssembly-specific intrinsics.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
let TargetPrefix = "wasm" in { // All intrinsics start with "llvm.wasm.".
|
|
|
|
// Note that current_memory is not IntrNoMem because it must be sequenced with
|
|
// respect to grow_memory calls.
|
|
def int_wasm_current_memory : Intrinsic<[llvm_anyint_ty], [], [IntrReadMem]>;
|
|
def int_wasm_grow_memory : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], []>;
|
|
|
|
// Exception handling intrinsics
|
|
def int_wasm_throw: Intrinsic<[], [llvm_i32_ty, llvm_ptr_ty], [Throws]>;
|
|
def int_wasm_rethrow: Intrinsic<[], [], [Throws]>;
|
|
|
|
}
|