1 //===- IntrinsicsSystemZ.td - Defines SystemZ intrinsics ---*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines all of the SystemZ-specific intrinsics.
12 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
16 // Transactional-execution intrinsics
18 //===----------------------------------------------------------------------===//
20 let TargetPrefix = "s390" in {
21 def int_s390_tbegin : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
24 def int_s390_tbegin_nofloat : Intrinsic<[llvm_i32_ty],
25 [llvm_ptr_ty, llvm_i32_ty],
28 def int_s390_tbeginc : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty],
31 def int_s390_tabort : Intrinsic<[], [llvm_i64_ty],
32 [IntrNoReturn, Throws]>;
34 def int_s390_tend : GCCBuiltin<"__builtin_tend">,
35 Intrinsic<[llvm_i32_ty], []>;
37 def int_s390_etnd : GCCBuiltin<"__builtin_tx_nesting_depth">,
38 Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>;
40 def int_s390_ntstg : Intrinsic<[], [llvm_i64_ty, llvm_ptr64_ty],
41 [IntrReadWriteArgMem]>;
43 def int_s390_ppa_txassist : GCCBuiltin<"__builtin_tx_assist">,
44 Intrinsic<[], [llvm_i32_ty]>;