1/* Linux fixed code userspace ABI 2 3 Copyright (C) 2005-2023 Free Software Foundation, Inc. 4 Contributed by Analog Devices, Inc. 5 6 This file is part of simulators. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21/* For more info, see this page: 22 http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:fixed-code */ 23 24.text 25 26.align 16 27_sigreturn_stub: 28 P0 = 173; 29 EXCPT 0; 300: JUMP.S 0b; 31 32.align 16 33_atomic_xchg32: 34 R0 = [P0]; 35 [P0] = R1; 36 rts; 37 38.align 16 39_atomic_cas32: 40 R0 = [P0]; 41 CC = R0 == R1; 42 IF !CC JUMP 1f; 43 [P0] = R2; 441: 45 rts; 46 47.align 16 48_atomic_add32: 49 R1 = [P0]; 50 R0 = R1 + R0; 51 [P0] = R0; 52 rts; 53 54.align 16 55_atomic_sub32: 56 R1 = [P0]; 57 R0 = R1 - R0; 58 [P0] = R0; 59 rts; 60 61.align 16 62_atomic_ior32: 63 R1 = [P0]; 64 R0 = R1 | R0; 65 [P0] = R0; 66 rts; 67 68.align 16 69_atomic_and32: 70 R1 = [P0]; 71 R0 = R1 & R0; 72 [P0] = R0; 73 rts; 74 75.align 16 76_atomic_xor32: 77 R1 = [P0]; 78 R0 = R1 ^ R0; 79 [P0] = R0; 80 rts; 81 82.align 16 83_safe_user_instruction: 84 NOP; NOP; NOP; NOP; 85 EXCPT 0x4; 86