]> git.lizzy.rs Git - plan9front.git/commitdiff
libc: fix return value for arm64 memset() and memove()
authorcinap_lenrek <cinap_lenrek@felloff.net>
Thu, 9 May 2019 10:40:03 +0000 (12:40 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Thu, 9 May 2019 10:40:03 +0000 (12:40 +0200)
sys/src/ape/lib/ap/arm64/memmove.s
sys/src/ape/lib/ap/arm64/memset.s
sys/src/libc/arm64/memmove.s
sys/src/libc/arm64/memset.s

index 0def257e940884ed575343a318ceb7f850b555b2..b19b736daf66a0e74ab982113e4d1972dbbd5a18 100644 (file)
@@ -8,6 +8,7 @@ TEXT memmove(SB), $-4
        BLT     _backward
 
 _forward:
+       MOV     R0, R7
        ADD     R0, R2, R3
        BIC     $15, R2, R4
        CBZ     R4, _floop1
@@ -15,15 +16,15 @@ _forward:
 
 _floop16:
        MOVP    (R1)16!, R5, R6
-       MOVP    R5, R6, (R0)16!
-       CMP     R4, R0
+       MOVP    R5, R6, (R7)16!
+       CMP     R4, R7
        BNE     _floop16
 
 _floop1:
-       CMP     R3, R0
+       CMP     R3, R7
        BEQ     _done
        MOVBU   (R1)1!, R5
-       MOVBU   R5, (R0)1!
+       MOVBU   R5, (R7)1!
        B       _floop1
 
 _done:
index 0a7e1761f85fc244d7f122595f47d4137a23a952..486b32cb98a653616ec67ea9177d6fbffa42b1cb 100644 (file)
@@ -2,6 +2,7 @@ TEXT memset(SB), $-4
        MOVBU   c+8(FP), R1
        MOVWU   n+16(FP), R2
 
+       MOV     R0, R5
        ADD     R0, R2, R3
        BIC     $15, R2, R4
        CBZ     R4, _loop1
@@ -12,15 +13,15 @@ TEXT memset(SB), $-4
        ORR     R1<<32, R1
 
 _loop16:
-       MOVP    R1, R1, (R0)16!
-       CMP     R4, R0
+       MOVP    R1, R1, (R5)16!
+       CMP     R4, R5
        BNE     _loop16
 
 _loop1:
-       CMP     R3, R0
+       CMP     R3, R5
        BEQ     _done
 
-       MOVBU   R1, (R0)1!
+       MOVBU   R1, (R5)1!
        B       _loop1
 
 _done:
index 0def257e940884ed575343a318ceb7f850b555b2..b19b736daf66a0e74ab982113e4d1972dbbd5a18 100644 (file)
@@ -8,6 +8,7 @@ TEXT memmove(SB), $-4
        BLT     _backward
 
 _forward:
+       MOV     R0, R7
        ADD     R0, R2, R3
        BIC     $15, R2, R4
        CBZ     R4, _floop1
@@ -15,15 +16,15 @@ _forward:
 
 _floop16:
        MOVP    (R1)16!, R5, R6
-       MOVP    R5, R6, (R0)16!
-       CMP     R4, R0
+       MOVP    R5, R6, (R7)16!
+       CMP     R4, R7
        BNE     _floop16
 
 _floop1:
-       CMP     R3, R0
+       CMP     R3, R7
        BEQ     _done
        MOVBU   (R1)1!, R5
-       MOVBU   R5, (R0)1!
+       MOVBU   R5, (R7)1!
        B       _floop1
 
 _done:
index 0a7e1761f85fc244d7f122595f47d4137a23a952..486b32cb98a653616ec67ea9177d6fbffa42b1cb 100644 (file)
@@ -2,6 +2,7 @@ TEXT memset(SB), $-4
        MOVBU   c+8(FP), R1
        MOVWU   n+16(FP), R2
 
+       MOV     R0, R5
        ADD     R0, R2, R3
        BIC     $15, R2, R4
        CBZ     R4, _loop1
@@ -12,15 +13,15 @@ TEXT memset(SB), $-4
        ORR     R1<<32, R1
 
 _loop16:
-       MOVP    R1, R1, (R0)16!
-       CMP     R4, R0
+       MOVP    R1, R1, (R5)16!
+       CMP     R4, R5
        BNE     _loop16
 
 _loop1:
-       CMP     R3, R0
+       CMP     R3, R5
        BEQ     _done
 
-       MOVBU   R1, (R0)1!
+       MOVBU   R1, (R5)1!
        B       _loop1
 
 _done: