.. | .. |
---|
54 | 54 | */ |
---|
55 | 55 | |
---|
56 | 56 | #include <linux/linkage.h> |
---|
57 | | -#include <variant/core.h> |
---|
58 | 57 | #include <asm/asmmacro.h> |
---|
| 58 | +#include <asm/core.h> |
---|
59 | 59 | |
---|
60 | 60 | .text |
---|
61 | 61 | ENTRY(__xtensa_copy_user) |
---|
62 | 62 | |
---|
63 | | - entry sp, 16 # minimal stack frame |
---|
| 63 | + abi_entry_default |
---|
64 | 64 | # a2/ dst, a3/ src, a4/ len |
---|
65 | 65 | mov a5, a2 # copy dst so that a2 is return value |
---|
66 | 66 | mov a11, a4 # preserve original len for error case |
---|
.. | .. |
---|
75 | 75 | __ssa8 a3 # set shift amount from byte offset |
---|
76 | 76 | bnez a4, .Lsrcunaligned |
---|
77 | 77 | movi a2, 0 # return success for len==0 |
---|
78 | | - retw |
---|
| 78 | + abi_ret_default |
---|
79 | 79 | |
---|
80 | 80 | /* |
---|
81 | 81 | * Destination is unaligned |
---|
.. | .. |
---|
127 | 127 | #endif /* !XCHAL_HAVE_LOOPS */ |
---|
128 | 128 | .Lbytecopydone: |
---|
129 | 129 | movi a2, 0 # return success for len bytes copied |
---|
130 | | - retw |
---|
| 130 | + abi_ret_default |
---|
131 | 131 | |
---|
132 | 132 | /* |
---|
133 | 133 | * Destination and source are word-aligned. |
---|
.. | .. |
---|
187 | 187 | EX(10f) s8i a6, a5, 0 |
---|
188 | 188 | .L5: |
---|
189 | 189 | movi a2, 0 # return success for len bytes copied |
---|
190 | | - retw |
---|
| 190 | + abi_ret_default |
---|
191 | 191 | |
---|
192 | 192 | /* |
---|
193 | 193 | * Destination is aligned, Source is unaligned |
---|
.. | .. |
---|
264 | 264 | EX(10f) s8i a6, a5, 0 |
---|
265 | 265 | .L15: |
---|
266 | 266 | movi a2, 0 # return success for len bytes copied |
---|
267 | | - retw |
---|
| 267 | + abi_ret_default |
---|
268 | 268 | |
---|
269 | 269 | ENDPROC(__xtensa_copy_user) |
---|
270 | 270 | |
---|
.. | .. |
---|
281 | 281 | 10: |
---|
282 | 282 | sub a2, a5, a2 /* a2 <-- bytes copied */ |
---|
283 | 283 | sub a2, a11, a2 /* a2 <-- bytes not copied */ |
---|
284 | | - retw |
---|
| 284 | + abi_ret_default |
---|