| .. | .. |
|---|
| 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) |
|---|