1;; S390 TPF-OS specific machine patterns
2;; Copyright (C) 2005-2021 Free Software Foundation, Inc.
3;;
4;; This file is part of GCC.
5;;
6;; GCC is free software; you can redistribute it and/or modify
7;; it under the terms of the GNU General Public License as published by
8;; the Free Software Foundation; either version 3, or (at your option)
9;; any later version.
10;;
11;; GCC is distributed in the hope that it will be useful,
12;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14;; GNU General Public License for more details.
15;;
16;; You should have received a copy of the GNU General Public License
17;; along with GCC; see the file COPYING3.  If not see
18;; <http://www.gnu.org/licenses/>.
19
20(define_insn "prologue_tpf"
21  [(unspec_volatile [(match_operand 0 "const_int_operand" "J")
22		     (match_operand 1 "const_int_operand" "J")]
23		    UNSPECV_TPF_PROLOGUE)
24   (clobber (reg:DI 1))]
25  "TARGET_TPF_PROFILING"
26  "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1"
27  [(set_attr "length"   "14")])
28
29
30(define_insn "epilogue_tpf"
31  [(unspec_volatile [(match_operand 0 "const_int_operand" "J")
32		     (match_operand 1 "const_int_operand" "J")]
33		    UNSPECV_TPF_EPILOGUE)
34   (clobber (reg:DI 1))]
35  "TARGET_TPF_PROFILING"
36  "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1"
37  [(set_attr "length"   "14")])
38