1/* Copyright 2018-2023 Free Software Foundation, Inc. 2 3 This program is free software; you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation; either version 3 of the License, or 6 (at your option) any later version. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16volatile int e = 0; 17 18void 19baz (void) 20{ 21 asm ("baz_label: .globl baz_label"); 22} /* baz end */ 23 24void 25foo_low (void) 26{ /* foo_low prologue */ 27 asm ("foo_low_label: .globl foo_low_label"); 28 baz (); /* foo_low baz call */ 29 asm ("foo_low_label2: .globl foo_low_label2"); 30} /* foo_low end */ 31 32void 33bar (void) 34{ 35 asm ("bar_label: .globl bar_label"); 36} /* bar end */ 37 38void 39foo (void) 40{ /* foo prologue */ 41 asm ("foo_label: .globl foo_label"); 42 bar (); /* foo bar call */ 43 asm ("foo_label2: .globl foo_label2"); 44 if (e) foo_low (); /* foo foo_low call */ 45 asm ("foo_label3: .globl foo_label3"); 46} /* foo end */ 47