Changeset da349da0 in mainline


Ignore:
Timestamp:
2008-08-10T15:28:42Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a9d4d2c
Parents:
d2e9c47
Message:

memcpy(), memmove() and similar functions return dst instead of src.
Fix all implementations, including those in assembly. ppc32 assembly
version didn't seem to be affected by this.

Files:
12 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/arm32/loader/asm.S

    rd2e9c47 rda349da0  
    3636        bic     r3, r3, #3
    3737        cmp     r1, r3
    38         stmdb   sp!, {r4, lr}
     38        stmdb   sp!, {r4, r5, lr}
     39        mov     r5, r0
    3940        beq     4f
    40411:
     
    4950        bne     2b
    50513:
    51         mov     r0, r1
    52         ldmia   sp!, {r4, pc}
     52        mov     r0, r5
     53        ldmia   sp!, {r4, r5, pc}
    53544:
    5455        add     r3, r0, #3
  • boot/arch/mips32/loader/asm.S

    rd2e9c47 rda349da0  
    4949        beq     $a1,$v0,3f
    5050        move    $t0,$a0
     51        move    $t2,$a0                 # save dst
    5152
    52530:
     
    64652:
    6566        jr      $ra
    66         move    $v0,$a1
     67        move    $v0,$t2
    6768
    68693:
     
    104105
    105106        jr      $ra
    106         move    $v0,$a1
     107        move    $v0,$t2
    107108
    108109jump_to_kernel:
  • boot/arch/sparc64/loader/asm.S

    rd2e9c47 rda349da0  
    3131#include <register.h>
    3232
     33.register       %g2, #scratch
     34.register       %g3, #scratch
     35
    3336.text
    3437
     
    4245       
    4346memcpy:
    44         .register       %g2, #scratch
    45         .register       %g3, #scratch
     47        mov     %o0, %o3                ! save dst
    4648        add     %o1, 7, %g1
    4749        and     %g1, -8, %g1
     
    62642:
    6365        jmp     %o7 + 8                 ! exit point
    64         mov     %o1, %o0
     66        mov     %o3, %o0
    65673:
    6668        and     %g1, -8, %g1
     
    9698
    9799        jmp     %o7 + 8                 ! exit point
    98         mov     %o1, %o0
     100        mov     %o3, %o0
    99101
    100102jump_to_kernel:
  • kernel/arch/amd64/src/asm_utils.S

    rd2e9c47 rda349da0  
    9999 * @param MEMCPY_SIZE   Number of bytes to copy.
    100100 *
    101  * @retrun MEMCPY_SRC on success, 0 on failure.
     101 * @retrun MEMCPY_DST on success, 0 on failure.
    102102 */
    103103memcpy:
    104104memcpy_from_uspace:
    105105memcpy_to_uspace:
    106         movq MEMCPY_SRC, %rax
     106        movq MEMCPY_DST, %rax
    107107
    108108        movq MEMCPY_SIZE, %rcx
  • kernel/arch/arm32/src/asm.S

    rd2e9c47 rda349da0  
    4646        bic     r3, r3, #3
    4747        cmp     r1, r3
    48         stmdb   sp!, {r4, lr}
     48        stmdb   sp!, {r4, r5, lr}
     49        mov     r5, r0                  /* save dst */
    4950        beq     4f
    50511:
     
    5960        bne     2b
    60613:
    61         mov     r0, r1
    62         ldmia   sp!, {r4, pc}
     62        mov     r0, r5
     63        ldmia   sp!, {r4, r5, pc}
    63644:
    6465        add     r3, r0, #3
     
    9596memcpy_from_uspace_failover_address:
    9697memcpy_to_uspace_failover_address:
    97         mov             r0, #0
    98         ldmia   sp!, {r4, pc}
     98        mov     r0, #0
     99        ldmia   sp!, {r4, r5, pc}
  • kernel/arch/ia32/src/asm.S

    rd2e9c47 rda349da0  
    7272 * @param MEMCPY_SIZE(%esp)     Size.
    7373 *
    74  * @return MEMCPY_SRC(%esp) on success and 0 on failure.
     74 * @return MEMCPY_DST(%esp) on success and 0 on failure.
    7575 */
    7676memcpy:
     
    9797        movl %edx, %edi
    9898        movl %eax, %esi
    99         movl MEMCPY_SRC(%esp), %eax     /* MEMCPY_SRC(%esp), success */
     99        movl MEMCPY_DST(%esp), %eax     /* MEMCPY_DST(%esp), success */
    100100        ret
    101101       
  • kernel/arch/ia32xen/src/asm.S

    rd2e9c47 rda349da0  
    6868 * @param MEMCPY_SIZE(%esp)     Size.
    6969 *
    70  * @return MEMCPY_SRC(%esp) on success and 0 on failure.
     70 * @return MEMCPY_DST(%esp) on success and 0 on failure.
    7171 */
    7272memcpy:
     
    9393        movl %edx, %edi
    9494        movl %eax, %esi
    95         movl MEMCPY_SRC(%esp), %eax             /* MEMCPY_SRC(%esp), success */
     95        movl MEMCPY_DST(%esp), %eax             /* MEMCPY_DST(%esp), success */
    9696        ret
    9797       
  • kernel/arch/ia64/src/asm.S

    rd2e9c47 rda349da0  
    5252        adds r14 = 7, in1
    5353        mov r2 = ar.lc
    54         mov r8 = in1 ;;
     54        mov r8 = in0 ;;
    5555        and r14 = -8, r14 ;;
    5656        cmp.ne p6, p7 = r14, in1
  • kernel/arch/mips32/src/asm.S

    rd2e9c47 rda349da0  
    7272        beq     $a1,$v0,3f
    7373        move    $t0,$a0
     74        move    $t2,$a0                 # save dst
    7475
    75760:
     
    87882:
    8889        jr      $ra
    89         move    $v0,$a1
     90        move    $v0,$t2
    9091
    91923:
     
    127128
    128129        jr      $ra
    129         move    $v0,$a1
     130        move    $v0,$t2
    130131
    131132memcpy_from_uspace_failover_address:
  • kernel/arch/sparc64/src/asm.S

    rd2e9c47 rda349da0  
    4242.global memcpy
    4343memcpy:
     44        mov     %o0, %o3                ! save dst
    4445        add     %o1, 7, %g1
    4546        and     %g1, -8, %g1
     
    60612:
    6162        jmp     %o7 + 8                 ! exit point
    62         mov     %o1, %o0
     63        mov     %o3, %o0
    63643:
    6465        and     %g1, -8, %g1
     
    9495
    9596        jmp     %o7 + 8                 ! exit point
    96         mov     %o1, %o0
     97        mov     %o3, %o0
    9798
    9899/*
     
    101102.global memcpy_from_uspace
    102103memcpy_from_uspace:
     104        mov     %o0, %o3                ! save dst
    103105        add     %o1, 7, %g1
    104106        and     %g1, -8, %g1
     
    1191212:
    120122        jmp     %o7 + 8                 ! exit point
    121         mov     %o1, %o0
     123        mov     %o3, %o0
    1221243:
    123125        and     %g1, -8, %g1
     
    153155
    154156        jmp     %o7 + 8                 ! exit point
    155         mov     %o1, %o0
     157        mov     %o3, %o0
    156158
    157159/*
     
    160162.global memcpy_to_uspace
    161163memcpy_to_uspace:
     164        mov     %o0, %o3                ! save dst
    162165        add     %o1, 7, %g1
    163166        and     %g1, -8, %g1
     
    1781812:
    179182        jmp     %o7 + 8                 ! exit point
    180         mov     %o1, %o0
     183        mov     %o3, %o0
    1811843:
    182185        and     %g1, -8, %g1
     
    212215
    213216        jmp     %o7 + 8                 ! exit point
    214         mov     %o1, %o0
     217        mov     %o3, %o0
    215218
    216219.global memcpy_from_uspace_failover_address
  • kernel/generic/src/lib/memstr.c

    rd2e9c47 rda349da0  
    7575        }
    7676               
    77         return (char *) src;
     77        return (char *) dst;
    7878}
    7979
  • uspace/lib/libc/generic/string.c

    rd2e9c47 rda349da0  
    7070                    ((unsigned char *) (((unsigned long *) src) + i))[j];
    7171               
    72         return (char *) src;
     72        return (char *) dst;
    7373}
    7474
     
    8888                    ((unsigned char *) (((unsigned long *) src) + i))[j];
    8989               
    90         return (char *) src;
     90        return (char *) dst;
    9191}
    9292
     
    105105                ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
    106106               
    107         return (char *) src;
     107        return (char *) dst;
    108108}
    109109
Note: See TracChangeset for help on using the changeset viewer.