libc: fix return value for arm64 memset() and memove()

This commit is contained in:
cinap_lenrek 2019-05-09 12:40:03 +02:00
parent 57e0786595
commit a375c9ac38
4 changed files with 20 additions and 16 deletions

View file

@ -8,6 +8,7 @@ TEXT memmove(SB), $-4
BLT _backward BLT _backward
_forward: _forward:
MOV R0, R7
ADD R0, R2, R3 ADD R0, R2, R3
BIC $15, R2, R4 BIC $15, R2, R4
CBZ R4, _floop1 CBZ R4, _floop1
@ -15,15 +16,15 @@ _forward:
_floop16: _floop16:
MOVP (R1)16!, R5, R6 MOVP (R1)16!, R5, R6
MOVP R5, R6, (R0)16! MOVP R5, R6, (R7)16!
CMP R4, R0 CMP R4, R7
BNE _floop16 BNE _floop16
_floop1: _floop1:
CMP R3, R0 CMP R3, R7
BEQ _done BEQ _done
MOVBU (R1)1!, R5 MOVBU (R1)1!, R5
MOVBU R5, (R0)1! MOVBU R5, (R7)1!
B _floop1 B _floop1
_done: _done:

View file

@ -2,6 +2,7 @@ TEXT memset(SB), $-4
MOVBU c+8(FP), R1 MOVBU c+8(FP), R1
MOVWU n+16(FP), R2 MOVWU n+16(FP), R2
MOV R0, R5
ADD R0, R2, R3 ADD R0, R2, R3
BIC $15, R2, R4 BIC $15, R2, R4
CBZ R4, _loop1 CBZ R4, _loop1
@ -12,15 +13,15 @@ TEXT memset(SB), $-4
ORR R1<<32, R1 ORR R1<<32, R1
_loop16: _loop16:
MOVP R1, R1, (R0)16! MOVP R1, R1, (R5)16!
CMP R4, R0 CMP R4, R5
BNE _loop16 BNE _loop16
_loop1: _loop1:
CMP R3, R0 CMP R3, R5
BEQ _done BEQ _done
MOVBU R1, (R0)1! MOVBU R1, (R5)1!
B _loop1 B _loop1
_done: _done:

View file

@ -8,6 +8,7 @@ TEXT memmove(SB), $-4
BLT _backward BLT _backward
_forward: _forward:
MOV R0, R7
ADD R0, R2, R3 ADD R0, R2, R3
BIC $15, R2, R4 BIC $15, R2, R4
CBZ R4, _floop1 CBZ R4, _floop1
@ -15,15 +16,15 @@ _forward:
_floop16: _floop16:
MOVP (R1)16!, R5, R6 MOVP (R1)16!, R5, R6
MOVP R5, R6, (R0)16! MOVP R5, R6, (R7)16!
CMP R4, R0 CMP R4, R7
BNE _floop16 BNE _floop16
_floop1: _floop1:
CMP R3, R0 CMP R3, R7
BEQ _done BEQ _done
MOVBU (R1)1!, R5 MOVBU (R1)1!, R5
MOVBU R5, (R0)1! MOVBU R5, (R7)1!
B _floop1 B _floop1
_done: _done:

View file

@ -2,6 +2,7 @@ TEXT memset(SB), $-4
MOVBU c+8(FP), R1 MOVBU c+8(FP), R1
MOVWU n+16(FP), R2 MOVWU n+16(FP), R2
MOV R0, R5
ADD R0, R2, R3 ADD R0, R2, R3
BIC $15, R2, R4 BIC $15, R2, R4
CBZ R4, _loop1 CBZ R4, _loop1
@ -12,15 +13,15 @@ TEXT memset(SB), $-4
ORR R1<<32, R1 ORR R1<<32, R1
_loop16: _loop16:
MOVP R1, R1, (R0)16! MOVP R1, R1, (R5)16!
CMP R4, R0 CMP R4, R5
BNE _loop16 BNE _loop16
_loop1: _loop1:
CMP R3, R0 CMP R3, R5
BEQ _done BEQ _done
MOVBU R1, (R0)1! MOVBU R1, (R5)1!
B _loop1 B _loop1
_done: _done: