18c2ecf20Sopenharmony_ci;;; SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci;;; strncpy.S 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#include <asm/linkage.h> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci .text 78c2ecf20Sopenharmony_ci.global strncpy_from_user 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci;;; long strncpy_from_user(void *to, void *from, size_t n) 108c2ecf20Sopenharmony_cistrncpy_from_user: 118c2ecf20Sopenharmony_ci mov.l er2,er2 128c2ecf20Sopenharmony_ci bne 1f 138c2ecf20Sopenharmony_ci sub.l er0,er0 148c2ecf20Sopenharmony_ci rts 158c2ecf20Sopenharmony_ci1: 168c2ecf20Sopenharmony_ci mov.l er4,@-sp 178c2ecf20Sopenharmony_ci sub.l er3,er3 188c2ecf20Sopenharmony_ci2: 198c2ecf20Sopenharmony_ci mov.b @er1+,r4l 208c2ecf20Sopenharmony_ci mov.b r4l,@er0 218c2ecf20Sopenharmony_ci adds #1,er0 228c2ecf20Sopenharmony_ci beq 3f 238c2ecf20Sopenharmony_ci inc.l #1,er3 248c2ecf20Sopenharmony_ci dec.l #1,er2 258c2ecf20Sopenharmony_ci bne 2b 268c2ecf20Sopenharmony_ci3: 278c2ecf20Sopenharmony_ci dec.l #1,er2 288c2ecf20Sopenharmony_ci4: 298c2ecf20Sopenharmony_ci mov.b r4l,@er0 308c2ecf20Sopenharmony_ci adds #1,er0 318c2ecf20Sopenharmony_ci dec.l #1,er2 328c2ecf20Sopenharmony_ci bne 4b 338c2ecf20Sopenharmony_ci mov.l er3,er0 348c2ecf20Sopenharmony_ci mov.l @sp+,er4 358c2ecf20Sopenharmony_ci rts 36