.. | .. |
---|
10 | 10 | */ |
---|
11 | 11 | |
---|
12 | 12 | #include <linux/linkage.h> |
---|
13 | | -#include <variant/core.h> |
---|
14 | 13 | #include <asm/asmmacro.h> |
---|
| 14 | +#include <asm/core.h> |
---|
15 | 15 | |
---|
16 | 16 | /* |
---|
17 | 17 | * void *memcpy(void *dst, const void *src, size_t len); |
---|
.. | .. |
---|
79 | 79 | bne a3, a7, .Lnextbyte # continue loop if $a3:src != $a7:src_end |
---|
80 | 80 | #endif /* !XCHAL_HAVE_LOOPS */ |
---|
81 | 81 | .Lbytecopydone: |
---|
82 | | - retw |
---|
| 82 | + abi_ret_default |
---|
83 | 83 | |
---|
84 | 84 | /* |
---|
85 | 85 | * Destination is unaligned |
---|
.. | .. |
---|
112 | 112 | ENTRY(__memcpy) |
---|
113 | 113 | WEAK(memcpy) |
---|
114 | 114 | |
---|
115 | | - entry sp, 16 # minimal stack frame |
---|
| 115 | + abi_entry_default |
---|
116 | 116 | # a2/ dst, a3/ src, a4/ len |
---|
117 | 117 | mov a5, a2 # copy dst so that a2 is return value |
---|
118 | 118 | .Lcommon: |
---|
.. | .. |
---|
161 | 161 | bbsi.l a4, 2, .L3 |
---|
162 | 162 | bbsi.l a4, 1, .L4 |
---|
163 | 163 | bbsi.l a4, 0, .L5 |
---|
164 | | - retw |
---|
| 164 | + abi_ret_default |
---|
165 | 165 | .L3: |
---|
166 | 166 | # copy 4 bytes |
---|
167 | 167 | l32i a6, a3, 0 |
---|
.. | .. |
---|
170 | 170 | addi a5, a5, 4 |
---|
171 | 171 | bbsi.l a4, 1, .L4 |
---|
172 | 172 | bbsi.l a4, 0, .L5 |
---|
173 | | - retw |
---|
| 173 | + abi_ret_default |
---|
174 | 174 | .L4: |
---|
175 | 175 | # copy 2 bytes |
---|
176 | 176 | l16ui a6, a3, 0 |
---|
.. | .. |
---|
178 | 178 | s16i a6, a5, 0 |
---|
179 | 179 | addi a5, a5, 2 |
---|
180 | 180 | bbsi.l a4, 0, .L5 |
---|
181 | | - retw |
---|
| 181 | + abi_ret_default |
---|
182 | 182 | .L5: |
---|
183 | 183 | # copy 1 byte |
---|
184 | 184 | l8ui a6, a3, 0 |
---|
185 | 185 | s8i a6, a5, 0 |
---|
186 | | - retw |
---|
| 186 | + abi_ret_default |
---|
187 | 187 | |
---|
188 | 188 | /* |
---|
189 | 189 | * Destination is aligned, Source is unaligned |
---|
.. | .. |
---|
255 | 255 | #endif |
---|
256 | 256 | bbsi.l a4, 1, .L14 |
---|
257 | 257 | bbsi.l a4, 0, .L15 |
---|
258 | | -.Ldone: retw |
---|
| 258 | +.Ldone: abi_ret_default |
---|
259 | 259 | .L14: |
---|
260 | 260 | # copy 2 bytes |
---|
261 | 261 | l8ui a6, a3, 0 |
---|
.. | .. |
---|
265 | 265 | s8i a7, a5, 1 |
---|
266 | 266 | addi a5, a5, 2 |
---|
267 | 267 | bbsi.l a4, 0, .L15 |
---|
268 | | - retw |
---|
| 268 | + abi_ret_default |
---|
269 | 269 | .L15: |
---|
270 | 270 | # copy 1 byte |
---|
271 | 271 | l8ui a6, a3, 0 |
---|
272 | 272 | s8i a6, a5, 0 |
---|
273 | | - retw |
---|
| 273 | + abi_ret_default |
---|
274 | 274 | |
---|
275 | 275 | ENDPROC(__memcpy) |
---|
276 | 276 | |
---|
.. | .. |
---|
280 | 280 | |
---|
281 | 281 | ENTRY(bcopy) |
---|
282 | 282 | |
---|
283 | | - entry sp, 16 # minimal stack frame |
---|
| 283 | + abi_entry_default |
---|
284 | 284 | # a2=src, a3=dst, a4=len |
---|
285 | 285 | mov a5, a3 |
---|
286 | 286 | mov a3, a2 |
---|
.. | .. |
---|
346 | 346 | # $a3:src != $a7:src_start |
---|
347 | 347 | #endif /* !XCHAL_HAVE_LOOPS */ |
---|
348 | 348 | .Lbackbytecopydone: |
---|
349 | | - retw |
---|
| 349 | + abi_ret_default |
---|
350 | 350 | |
---|
351 | 351 | /* |
---|
352 | 352 | * Destination is unaligned |
---|
.. | .. |
---|
380 | 380 | ENTRY(__memmove) |
---|
381 | 381 | WEAK(memmove) |
---|
382 | 382 | |
---|
383 | | - entry sp, 16 # minimal stack frame |
---|
| 383 | + abi_entry_default |
---|
384 | 384 | # a2/ dst, a3/ src, a4/ len |
---|
385 | 385 | mov a5, a2 # copy dst so that a2 is return value |
---|
386 | 386 | .Lmovecommon: |
---|
.. | .. |
---|
435 | 435 | bbsi.l a4, 2, .Lback3 |
---|
436 | 436 | bbsi.l a4, 1, .Lback4 |
---|
437 | 437 | bbsi.l a4, 0, .Lback5 |
---|
438 | | - retw |
---|
| 438 | + abi_ret_default |
---|
439 | 439 | .Lback3: |
---|
440 | 440 | # copy 4 bytes |
---|
441 | 441 | addi a3, a3, -4 |
---|
.. | .. |
---|
444 | 444 | s32i a6, a5, 0 |
---|
445 | 445 | bbsi.l a4, 1, .Lback4 |
---|
446 | 446 | bbsi.l a4, 0, .Lback5 |
---|
447 | | - retw |
---|
| 447 | + abi_ret_default |
---|
448 | 448 | .Lback4: |
---|
449 | 449 | # copy 2 bytes |
---|
450 | 450 | addi a3, a3, -2 |
---|
.. | .. |
---|
452 | 452 | addi a5, a5, -2 |
---|
453 | 453 | s16i a6, a5, 0 |
---|
454 | 454 | bbsi.l a4, 0, .Lback5 |
---|
455 | | - retw |
---|
| 455 | + abi_ret_default |
---|
456 | 456 | .Lback5: |
---|
457 | 457 | # copy 1 byte |
---|
458 | 458 | addi a3, a3, -1 |
---|
459 | 459 | l8ui a6, a3, 0 |
---|
460 | 460 | addi a5, a5, -1 |
---|
461 | 461 | s8i a6, a5, 0 |
---|
462 | | - retw |
---|
| 462 | + abi_ret_default |
---|
463 | 463 | |
---|
464 | 464 | /* |
---|
465 | 465 | * Destination is aligned, Source is unaligned |
---|
.. | .. |
---|
531 | 531 | bbsi.l a4, 1, .Lback14 |
---|
532 | 532 | bbsi.l a4, 0, .Lback15 |
---|
533 | 533 | .Lbackdone: |
---|
534 | | - retw |
---|
| 534 | + abi_ret_default |
---|
535 | 535 | .Lback14: |
---|
536 | 536 | # copy 2 bytes |
---|
537 | 537 | addi a3, a3, -2 |
---|
.. | .. |
---|
541 | 541 | s8i a6, a5, 0 |
---|
542 | 542 | s8i a7, a5, 1 |
---|
543 | 543 | bbsi.l a4, 0, .Lback15 |
---|
544 | | - retw |
---|
| 544 | + abi_ret_default |
---|
545 | 545 | .Lback15: |
---|
546 | 546 | # copy 1 byte |
---|
547 | 547 | addi a3, a3, -1 |
---|
548 | 548 | addi a5, a5, -1 |
---|
549 | 549 | l8ui a6, a3, 0 |
---|
550 | 550 | s8i a6, a5, 0 |
---|
551 | | - retw |
---|
| 551 | + abi_ret_default |
---|
552 | 552 | |
---|
553 | 553 | ENDPROC(__memmove) |
---|