HomeFreeBSD

[PPC64] memcpy/memmove/bcopy optimization

Description

[PPC64] memcpy/memmove/bcopy optimization

For copies shorter than 512 bytes, the data is copied using plain
ld/std instructions.
For 512 bytes or more, the copy is done in 3 phases:

Phase 1: copy from the src buffer until it's aligned at a 16-byte boundary
Phase 2: copy as many aligned 64-byte blocks from the src buffer as possible
Phase 3: copy the remaining data, if any

In phase 2, this code uses VSX instructions when available. Otherwise,
it uses ldx/stdx.

Submitted by: Luis Pires <lffpires_ruabrasil.org> (original version)
Reviewed by: jhibbits
Differential Revision: https://reviews.freebsd.org/D15118

Details

Provenance
luporlAuthored on Jan 15 2020, 8:25 PM
Parents
rG181e35008cfb: [PPC64] strncpy optimization
Branches
Unknown
Tags
Unknown

Event Timeline