1/* longjmp. 2 Copyright (C) 2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library. If not, see 17 <https://www.gnu.org/licenses/>. */ 18 19#include <sysdep.h> 20#include <sys/asm.h> 21 22ENTRY (__longjmp) 23 REG_L ra, a0, 0*SZREG 24 REG_L sp, a0, 1*SZREG 25 REG_L x, a0, 2*SZREG 26 REG_L fp, a0, 3*SZREG 27 REG_L s0, a0, 4*SZREG 28 REG_L s1, a0, 5*SZREG 29 REG_L s2, a0, 6*SZREG 30 REG_L s3, a0, 7*SZREG 31 REG_L s4, a0, 8*SZREG 32 REG_L s5, a0, 9*SZREG 33 REG_L s6, a0, 10*SZREG 34 REG_L s7, a0, 11*SZREG 35 REG_L s8, a0, 12*SZREG 36 37 FREG_L $f24, a0, 13*SZREG + 0*SZFREG 38 FREG_L $f25, a0, 13*SZREG + 1*SZFREG 39 FREG_L $f26, a0, 13*SZREG + 2*SZFREG 40 FREG_L $f27, a0, 13*SZREG + 3*SZFREG 41 FREG_L $f28, a0, 13*SZREG + 4*SZFREG 42 FREG_L $f29, a0, 13*SZREG + 5*SZFREG 43 FREG_L $f30, a0, 13*SZREG + 6*SZFREG 44 FREG_L $f31, a0, 13*SZREG + 7*SZFREG 45 46 sltui a0,a1,1 47 ADD a0, a0, a1 # a0 = (a1 == 0) ? 1 : a1 48 jirl zero,ra,0 49 50END (__longjmp) 51