• Christophe Leroy's avatar
    powerpc/32: add memset16() · da74f659
    Christophe Leroy authored
    Commit 694fc88c ("powerpc/string: Implement optimized
    memset variants") added memset16(), memset32() and memset64()
    for the 64 bits PPC.
    
    On 32 bits, memset64() is not relevant, and as shown below,
    the generic version of memset32() gives a good code, so only
    memset16() is candidate for an optimised version.
    
    000009c0 <memset32>:
     9c0:   2c 05 00 00     cmpwi   r5,0
     9c4:   39 23 ff fc     addi    r9,r3,-4
     9c8:   4d 82 00 20     beqlr
     9cc:   7c a9 03 a6     mtctr   r5
     9d0:   94 89 00 04     stwu    r4,4(r9)
     9d4:   42 00 ff fc     bdnz    9d0 <memset32+0x10>
     9d8:   4e 80 00 20     blr
    
    The last part of memset() handling the not 4-bytes multiples
    operates on bytes, making it unsuitable for handling word without
    modification. As it would increase memset() complexity, it is
    better to implement memset16() from scratch. In addition it
    has the advantage of allowing a more optimised memset16() than what
    we would have by using the memset() function.
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    da74f659
string.h 1.6 KB