]>
Commit | Line | Data |
---|---|---|
9bd05108 RS |
1 | /* EABI unaligned read/write functions. |
2 | ||
7adcbafe | 3 | Copyright (C) 2005-2022 Free Software Foundation, Inc. |
9bd05108 RS |
4 | Contributed by CodeSourcery, LLC. |
5 | ||
6 | This file is free software; you can redistribute it and/or modify it | |
7 | under the terms of the GNU General Public License as published by the | |
748086b7 | 8 | Free Software Foundation; either version 3, or (at your option) any |
9bd05108 RS |
9 | later version. |
10 | ||
9bd05108 RS |
11 | This file is distributed in the hope that it will be useful, but |
12 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | General Public License for more details. | |
15 | ||
748086b7 JJ |
16 | Under Section 7 of GPL version 3, you are granted additional |
17 | permissions described in the GCC Runtime Library Exception, version | |
18 | 3.1, as published by the Free Software Foundation. | |
19 | ||
20 | You should have received a copy of the GNU General Public License and | |
21 | a copy of the GCC Runtime Library Exception along with this program; | |
22 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 | <http://www.gnu.org/licenses/>. */ | |
9bd05108 RS |
24 | |
25 | int __aeabi_uread4 (void *); | |
26 | int __aeabi_uwrite4 (int, void *); | |
27 | long long __aeabi_uread8 (void *); | |
28 | long long __aeabi_uwrite8 (long long, void *); | |
29 | ||
30 | struct __attribute__((packed)) u4 { int data; }; | |
31 | struct __attribute__((packed)) u8 { long long data; }; | |
32 | ||
33 | int | |
34 | __aeabi_uread4 (void *ptr) | |
35 | { | |
36 | return ((struct u4 *) ptr)->data; | |
37 | } | |
38 | ||
39 | int | |
40 | __aeabi_uwrite4 (int data, void *ptr) | |
41 | { | |
42 | ((struct u4 *) ptr)->data = data; | |
43 | return data; | |
44 | } | |
45 | ||
46 | long long | |
47 | __aeabi_uread8 (void *ptr) | |
48 | { | |
49 | return ((struct u8 *) ptr)->data; | |
50 | } | |
51 | ||
52 | long long | |
53 | __aeabi_uwrite8 (long long data, void *ptr) | |
54 | { | |
55 | ((struct u8 *) ptr)->data = data; | |
56 | return data; | |
57 | } |