Gcc builtin review: strcpy, stpcpy, strcat, stpcat?
Richard Earnshaw
Richard.Earnshaw@foss.arm.com
Thu Jun 4 10:34:00 GMT 2015
On 25/05/15 12:45, OndÅej BÃlka wrote:
> Replaces it with strcpy. One could argue that opposite way to replace
> strcpy with stpcpy is faster.
>
> Reason is register pressure. Strcpy needs extra register to save return
> value while stpcpy has return value already in register used for writing
> terminating zero.
Depends on your architecture. On aarch64 we have plenty of spare
registers, so strcpy simply copies the destination register into a
scratch. It then doesn't have to carefully calculate the return value
at the end of the function (making the tail code simpler - there are
multiple return statements, but only one entry point).
R.
More information about the Libc-alpha
mailing list