Commit | Line | Data |
---|---|---|
ef016f83 MF |
1 | /* Linux fixed code userspace ABI |
2 | ||
ecd75fc8 | 3 | Copyright (C) 2005-2014 Free Software Foundation, Inc. |
ef016f83 MF |
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 | |
d2cec111 | 10 | the Free Software Foundation; either version 2 of the License, or |
ef016f83 MF |
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; | |
30 | 0: 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; | |
44 | 1: | |
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; |