1/* Copyright (C) 2012-2021 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18#include <sysdep.h> 19 20ENTRY(__makecontext_ret) 21 /* Mark r14 as undefined in order to stop unwinding here! */ 22 cfi_undefined (r14) 23 basr %r14,%r7 24 ltr %r8,%r8 /* Check whether uc_link is 0. */ 25 jz 1f 26 lr %r2,%r8 27 br %r9 281: lhi %r2,0 /* EXIT return value. */ 29#ifdef NO_HIDDEN 30 /* If SHARED and NO_HIDDEN is defined, we need to setup got pointer 31 as HIDDEN_JUMPTARGET expands to JUMPTARGET which expands to 32 exit@PLT. Otherwise HIDDEN_JUMPTARGET expands to __GI_exit if 33 SHARED is defined and to exit if SHARED is not defined. */ 34 SYSCALL_PIC_SETUP 35#endif 36 basr %r1,0 372: 38 al %r1,3f-2b(%r1) 39 basr %r14,%r1 /* Call exit. */ 40 j .+2 /* Trap if exit returns for some reason. */ 413: 42 .long HIDDEN_JUMPTARGET (exit) - 2b 43END(__makecontext_ret) 44