1*4882a593Smuzhiyun;;; SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun;;; strncpy.S 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun#include <asm/linkage.h> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun .text 7*4882a593Smuzhiyun.global strncpy_from_user 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun;;; long strncpy_from_user(void *to, void *from, size_t n) 10*4882a593Smuzhiyunstrncpy_from_user: 11*4882a593Smuzhiyun mov.l er2,er2 12*4882a593Smuzhiyun bne 1f 13*4882a593Smuzhiyun sub.l er0,er0 14*4882a593Smuzhiyun rts 15*4882a593Smuzhiyun1: 16*4882a593Smuzhiyun mov.l er4,@-sp 17*4882a593Smuzhiyun sub.l er3,er3 18*4882a593Smuzhiyun2: 19*4882a593Smuzhiyun mov.b @er1+,r4l 20*4882a593Smuzhiyun mov.b r4l,@er0 21*4882a593Smuzhiyun adds #1,er0 22*4882a593Smuzhiyun beq 3f 23*4882a593Smuzhiyun inc.l #1,er3 24*4882a593Smuzhiyun dec.l #1,er2 25*4882a593Smuzhiyun bne 2b 26*4882a593Smuzhiyun3: 27*4882a593Smuzhiyun dec.l #1,er2 28*4882a593Smuzhiyun4: 29*4882a593Smuzhiyun mov.b r4l,@er0 30*4882a593Smuzhiyun adds #1,er0 31*4882a593Smuzhiyun dec.l #1,er2 32*4882a593Smuzhiyun bne 4b 33*4882a593Smuzhiyun mov.l er3,er0 34*4882a593Smuzhiyun mov.l @sp+,er4 35*4882a593Smuzhiyun rts 36