summaryrefslogtreecommitdiff
path: root/sys/src/libc
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-07-25 15:54:22 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2021-07-25 15:54:22 +0000
commite4b5f170cffd0d5e788d9090f8f2a9802fe267e9 (patch)
tree96369172e019fea9450bce7bc70b331a272eaa7a /sys/src/libc
parent8a8329ad952b0fced970cc0b83e5e87d4a5ceb7a (diff)
libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize
Diffstat (limited to 'sys/src/libc')
-rw-r--r--sys/src/libc/amd64/memccpy.s12
-rw-r--r--sys/src/libc/amd64/memchr.s6
-rw-r--r--sys/src/libc/amd64/memcmp.s10
-rw-r--r--sys/src/libc/amd64/memcpy.s10
-rw-r--r--sys/src/libc/amd64/memmove.s10
-rw-r--r--sys/src/libc/amd64/memset.s6
-rw-r--r--sys/src/libc/arm64/memmove.s2
-rw-r--r--sys/src/libc/arm64/memset.s2
-rw-r--r--sys/src/libc/port/memccpy.c2
-rw-r--r--sys/src/libc/port/memchr.c2
-rw-r--r--sys/src/libc/port/memcmp.c2
-rw-r--r--sys/src/libc/port/memmove.c6
-rw-r--r--sys/src/libc/port/memset.c2
13 files changed, 35 insertions, 37 deletions
diff --git a/sys/src/libc/amd64/memccpy.s b/sys/src/libc/amd64/memccpy.s
index d878faaf5..805842859 100644
--- a/sys/src/libc/amd64/memccpy.s
+++ b/sys/src/libc/amd64/memccpy.s
@@ -1,7 +1,7 @@
- TEXT memccpy(SB),$0
+TEXT memccpy(SB),$0
- MOVL n+24(FP), CX
- CMPL CX, $0
+ MOVQ n+24(FP), CX
+ CMPQ CX, $0
JEQ none
MOVQ p2+8(FP), DI
MOVBLZX c+16(FP), AX
@@ -18,7 +18,7 @@
*/
none:
MOVL $0, AX
- MOVL n+24(FP), BX
+ MOVQ n+24(FP), BX
JMP memcpy
/*
@@ -44,7 +44,7 @@ memcpy:
ORQ SI, DX
ANDL $3, DX
JNE c3
- MOVL BX, CX
+ MOVQ BX, CX
SHRQ $2, CX
REP; MOVSL
/*
@@ -52,7 +52,7 @@ memcpy:
*/
ANDL $3, BX
c3:
- MOVL BX, CX
+ MOVQ BX, CX
REP; MOVSB
RET
diff --git a/sys/src/libc/amd64/memchr.s b/sys/src/libc/amd64/memchr.s
index 3648e84f9..1cf4ac3b2 100644
--- a/sys/src/libc/amd64/memchr.s
+++ b/sys/src/libc/amd64/memchr.s
@@ -1,7 +1,7 @@
- TEXT memchr(SB),$0
+TEXT memchr(SB),$0
- MOVL n+16(FP), CX
- CMPL CX, $0
+ MOVQ n+16(FP), CX
+ CMPQ CX, $0
JEQ none
MOVQ RARG, DI
MOVBLZX c+8(FP), AX
diff --git a/sys/src/libc/amd64/memcmp.s b/sys/src/libc/amd64/memcmp.s
index 71098b200..e545f67bd 100644
--- a/sys/src/libc/amd64/memcmp.s
+++ b/sys/src/libc/amd64/memcmp.s
@@ -1,7 +1,7 @@
- TEXT memcmp(SB),$0
+TEXT memcmp(SB),$0
- MOVL n+16(FP), BX
- CMPL BX, $0
+ MOVQ n+16(FP), BX
+ CMPQ BX, $0
JEQ none
MOVQ RARG, DI
MOVQ p2+8(FP), SI
@@ -14,7 +14,7 @@
* first by longs
*/
- MOVL BX, CX
+ MOVQ BX, CX
SHRQ $2, CX
REP; CMPSL
@@ -25,7 +25,7 @@
*/
ANDL $3, BX
c3:
- MOVL BX, CX
+ MOVQ BX, CX
REP; CMPSB
JNE found1
diff --git a/sys/src/libc/amd64/memcpy.s b/sys/src/libc/amd64/memcpy.s
index 878e80223..3858a7aec 100644
--- a/sys/src/libc/amd64/memcpy.s
+++ b/sys/src/libc/amd64/memcpy.s
@@ -2,8 +2,8 @@ TEXT memcpy(SB), $0
MOVQ RARG, DI
MOVQ DI, AX /* return value */
MOVQ p2+8(FP), SI
- MOVL n+16(FP), BX
- CMPL BX, $0
+ MOVQ n+16(FP), BX
+ CMPQ BX, $0
JGT _ok
JEQ _return /* nothing to do if n == 0 */
MOVL $0, SI /* fault if n < 0 */
@@ -40,7 +40,7 @@ _forward:
*/
JEQ _return /* flags set by above ANDL */
c3f:
- MOVL BX, CX
+ MOVQ BX, CX
REP; MOVSB
RET
@@ -62,7 +62,7 @@ _back:
ORQ SI, DX
ANDL $3, DX
JNE c3b
- MOVL BX, CX
+ MOVQ BX, CX
SHRQ $2, CX
ANDL $3, BX
REP; MOVSL
@@ -74,7 +74,7 @@ _back:
c3b:
ADDQ $3, DI
ADDQ $3, SI
- MOVL BX, CX
+ MOVQ BX, CX
REP; MOVSB
_return:
diff --git a/sys/src/libc/amd64/memmove.s b/sys/src/libc/amd64/memmove.s
index 1f00537fd..120ad282e 100644
--- a/sys/src/libc/amd64/memmove.s
+++ b/sys/src/libc/amd64/memmove.s
@@ -2,8 +2,8 @@ TEXT memmove(SB), $0
MOVQ RARG, DI
MOVQ DI, AX /* return value */
MOVQ p2+8(FP), SI
- MOVL n+16(FP), BX
- CMPL BX, $0
+ MOVQ n+16(FP), BX
+ CMPQ BX, $0
JGT _ok
JEQ _return /* nothing to do if n == 0 */
MOVL $0, SI /* fault if n < 0 */
@@ -40,7 +40,7 @@ _forward:
*/
JEQ _return /* flags set by above ANDL */
c3f:
- MOVL BX, CX
+ MOVQ BX, CX
REP; MOVSB
RET
@@ -62,7 +62,7 @@ _back:
ORQ SI, DX
ANDL $3, DX
JNE c3b
- MOVL BX, CX
+ MOVQ BX, CX
SHRQ $2, CX
ANDL $3, BX
REP; MOVSL
@@ -74,7 +74,7 @@ _back:
c3b:
ADDQ $3, DI
ADDQ $3, SI
- MOVL BX, CX
+ MOVQ BX, CX
REP; MOVSB
_return:
diff --git a/sys/src/libc/amd64/memset.s b/sys/src/libc/amd64/memset.s
index d190edee2..0e5a99435 100644
--- a/sys/src/libc/amd64/memset.s
+++ b/sys/src/libc/amd64/memset.s
@@ -1,13 +1,13 @@
- TEXT memset(SB),$0
+TEXT memset(SB),$0
CLD
MOVQ RARG, DI
MOVBLZX c+8(FP), AX
- MOVL n+16(FP), BX
+ MOVQ n+16(FP), BX
/*
* if not enough bytes, just set bytes
*/
- CMPL BX, $9
+ CMPQ BX, $9
JLS c3
/*
* if not aligned, just set bytes
diff --git a/sys/src/libc/arm64/memmove.s b/sys/src/libc/arm64/memmove.s
index b19b736da..76174800c 100644
--- a/sys/src/libc/arm64/memmove.s
+++ b/sys/src/libc/arm64/memmove.s
@@ -1,7 +1,7 @@
TEXT memcpy(SB), $-4
TEXT memmove(SB), $-4
MOV from+8(FP), R1
- MOVWU n+16(FP), R2
+ MOV n+16(FP), R2
CMP R0, R1
BEQ _done
diff --git a/sys/src/libc/arm64/memset.s b/sys/src/libc/arm64/memset.s
index 486b32cb9..f19e85ab4 100644
--- a/sys/src/libc/arm64/memset.s
+++ b/sys/src/libc/arm64/memset.s
@@ -1,6 +1,6 @@
TEXT memset(SB), $-4
MOVBU c+8(FP), R1
- MOVWU n+16(FP), R2
+ MOV n+16(FP), R2
MOV R0, R5
ADD R0, R2, R3
diff --git a/sys/src/libc/port/memccpy.c b/sys/src/libc/port/memccpy.c
index 9268ba72e..9fc3716c8 100644
--- a/sys/src/libc/port/memccpy.c
+++ b/sys/src/libc/port/memccpy.c
@@ -2,7 +2,7 @@
#include <libc.h>
void*
-memccpy(void *a1, void *a2, int c, ulong n)
+memccpy(void *a1, void *a2, int c, usize n)
{
uchar *s1, *s2;
diff --git a/sys/src/libc/port/memchr.c b/sys/src/libc/port/memchr.c
index fb4b1d148..1ffe8fd8a 100644
--- a/sys/src/libc/port/memchr.c
+++ b/sys/src/libc/port/memchr.c
@@ -2,7 +2,7 @@
#include <libc.h>
void*
-memchr(void *ap, int c, ulong n)
+memchr(void *ap, int c, usize n)
{
uchar *sp;
diff --git a/sys/src/libc/port/memcmp.c b/sys/src/libc/port/memcmp.c
index 211752b03..f33a8690b 100644
--- a/sys/src/libc/port/memcmp.c
+++ b/sys/src/libc/port/memcmp.c
@@ -2,7 +2,7 @@
#include <libc.h>
int
-memcmp(void *a1, void *a2, ulong n)
+memcmp(void *a1, void *a2, usize n)
{
uchar *s1, *s2;
uint c1, c2;
diff --git a/sys/src/libc/port/memmove.c b/sys/src/libc/port/memmove.c
index 16ef43277..5d6f28419 100644
--- a/sys/src/libc/port/memmove.c
+++ b/sys/src/libc/port/memmove.c
@@ -2,12 +2,10 @@
#include <libc.h>
void*
-memmove(void *a1, void *a2, ulong n)
+memmove(void *a1, void *a2, usize n)
{
char *s1, *s2;
- if((long)n < 0)
- abort();
s1 = a1;
s2 = a2;
if((s2 < s1) && (s2+n > s1))
@@ -29,7 +27,7 @@ back:
}
void*
-memcpy(void *a1, void *a2, ulong n)
+memcpy(void *a1, void *a2, usize n)
{
return memmove(a1, a2, n);
}
diff --git a/sys/src/libc/port/memset.c b/sys/src/libc/port/memset.c
index 431d6bb30..c1c9ab7da 100644
--- a/sys/src/libc/port/memset.c
+++ b/sys/src/libc/port/memset.c
@@ -2,7 +2,7 @@
#include <libc.h>
void*
-memset(void *ap, int c, ulong n)
+memset(void *ap, int c, usize n)
{
char *p;