]> git.lizzy.rs Git - plan9front.git/commitdiff
libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize
authorcinap_lenrek <cinap_lenrek@felloff.net>
Sun, 25 Jul 2021 15:54:22 +0000 (15:54 +0000)
committercinap_lenrek <cinap_lenrek@felloff.net>
Sun, 25 Jul 2021 15:54:22 +0000 (15:54 +0000)
19 files changed:
amd64/include/u.h
arm64/include/u.h
sys/include/libc.h
sys/man/2/memory
sys/src/9/port/lib.h
sys/src/cmd/aux/disksim.c
sys/src/libc/amd64/memccpy.s
sys/src/libc/amd64/memchr.s
sys/src/libc/amd64/memcmp.s
sys/src/libc/amd64/memcpy.s
sys/src/libc/amd64/memmove.s
sys/src/libc/amd64/memset.s
sys/src/libc/arm64/memmove.s
sys/src/libc/arm64/memset.s
sys/src/libc/port/memccpy.c
sys/src/libc/port/memchr.c
sys/src/libc/port/memcmp.c
sys/src/libc/port/memmove.c
sys/src/libc/port/memset.c

index 17a684368cffb808e3e63446017e6dcdf78833d4..32978b11529418c3f908c2094236d54c9b059f89 100644 (file)
@@ -8,7 +8,7 @@ typedef long long       vlong;
 typedef        unsigned long long uvlong;
 typedef long long      intptr;
 typedef unsigned long long uintptr;
-typedef unsigned long  usize;
+typedef unsigned long long usize;
 typedef        uint            Rune;
 typedef union FPdbleword FPdbleword;
 typedef uintptr                jmp_buf[2];
index 94d9cc3b73560f567d8b6e083d18534c9c4582f7..ca7037497536e514b4e0a19d97e5262211affe6f 100644 (file)
@@ -9,7 +9,7 @@ typedef long long       vlong;
 typedef        unsigned long long uvlong;
 typedef vlong  intptr;
 typedef uvlong uintptr;
-typedef unsigned long  usize;
+typedef unsigned long long usize;
 typedef        uint            Rune;
 typedef union FPdbleword FPdbleword;
 typedef uintptr        jmp_buf[2];
index ecc23c3432a290aaff0b6689362d5ca8149ac64f..27c45207d153e337050bc75100dcddc87c591bc0 100644 (file)
@@ -8,12 +8,12 @@
 /*
  * mem routines
  */
-extern void*   memccpy(void*, void*, int, ulong);
-extern void*   memset(void*, int, ulong);
-extern int     memcmp(void*, void*, ulong);
-extern void*   memcpy(void*, void*, ulong);
-extern void*   memmove(void*, void*, ulong);
-extern void*   memchr(void*, int, ulong);
+extern void*   memccpy(void*, void*, int, usize);
+extern void*   memset(void*, int, usize);
+extern int     memcmp(void*, void*, usize);
+extern void*   memcpy(void*, void*, usize);
+extern void*   memmove(void*, void*, usize);
+extern void*   memchr(void*, int, usize);
 
 /*
  * string routines
index 30c5cfb1e7ea50203a00eca2542ee7a854cc4c0c..348f929e7e0ff623242ab9902287868a8f2bc6cc 100644 (file)
@@ -8,22 +8,22 @@ memccpy, memchr, memcmp, memcpy, memmove, memset, tsmemcmp \- memory operations
 .PP
 .ta \w'\fLvoid* 'u
 .B
-void*  memccpy(void *s1, void *s2, int c, ulong n)
+void*  memccpy(void *s1, void *s2, int c, usize n)
 .PP
 .B
-void*  memchr(void *s, int c, ulong n)
+void*  memchr(void *s, int c, usize n)
 .PP
 .B
-int    memcmp(void *s1, void *s2, ulong n)
+int    memcmp(void *s1, void *s2, usize n)
 .PP
 .B
-void*  memcpy(void *s1, void *s2, ulong n)
+void*  memcpy(void *s1, void *s2, usize n)
 .PP
 .B
-void*  memmove(void *s1, void *s2, ulong n)
+void*  memmove(void *s1, void *s2, usize n)
 .PP
 .B
-void*  memset(void *s, int c, ulong n)
+void*  memset(void *s, int c, usize n)
 .PP
 .B #include <libsec.h>
 .PP
index 06b423d9d900b8bd4bea9cc76093df1297433238..ce05634f0ed51d0cb9ccd469ef8cc8f099f36f4e 100644 (file)
@@ -8,11 +8,11 @@
 /*
  * mem routines
  */
-extern void*   memccpy(void*, void*, int, ulong);
-extern void*   memset(void*, int, ulong);
-extern int     memcmp(void*, void*, ulong);
-extern void*   memmove(void*, void*, ulong);
-extern void*   memchr(void*, int, ulong);
+extern void*   memccpy(void*, void*, int, usize);
+extern void*   memset(void*, int, usize);
+extern int     memcmp(void*, void*, usize);
+extern void*   memmove(void*, void*, usize);
+extern void*   memchr(void*, int, usize);
 
 /*
  * string routines
index 3d261ea54d70b0e6d8e84e7910a7acefe28fac4b..c0b28935b07534db4b867f14be45cfd28ce4151c 100644 (file)
@@ -349,13 +349,13 @@ Have:
 }
 
 void*
-evommem(void *a, void *b, ulong n)
+evommem(void *a, void *b, usize n)
 {
        return memmove(b, a, n);
 }
 
 int
-isnonzero(void *v, ulong n)
+isnonzero(void *v, usize n)
 {
        uchar *a, *ea;
        
@@ -375,7 +375,7 @@ rdwrpart(Req *r)
        vlong offset;
        long count, tot, n, o;
        uchar *blk, *dat;
-       void *(*move)(void*, void*, ulong);
+       void *(*move)(void*, void*, usize);
 
        q = r->fid->qid.path-Qpart;
        if(q < 0 || q > nelem(tab) || !tab[q].inuse || tab[q].vers != r->fid->qid.vers){
index d878faaf54419378d92b4ee16db3195e96fd035a..805842859d47ca5a867215f217d08ec5c4ff660f 100644 (file)
@@ -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
index 3648e84f9622954e17c86de6c473ee8fc48e25a7..1cf4ac3b28940ab37bd5d8b5787588d5ee55153e 100644 (file)
@@ -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
index 71098b200c351bade19672edd258b3dfbf7e2c92..e545f67bd09dea8c77054e2b8ecde159e80dd2a6 100644 (file)
@@ -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
 
index 878e802236765cb69a62a019724eabf5cb80a572..3858a7aec6c851a49aac386abb1430278311f705 100644 (file)
@@ -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:
index 1f00537fd4dc513a0c3de438f108556c78e3c9f3..120ad282eb7af16c84d9ff0c2ddae73e6c71e1a6 100644 (file)
@@ -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:
index d190edee28dc4472b5192f1c2fc86ddcebd5da64..0e5a9943587f1e055f9329460854fcc407db2020 100644 (file)
@@ -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
index b19b736daf66a0e74ab982113e4d1972dbbd5a18..76174800c82bb40b1ffec122d761a821a80adb54 100644 (file)
@@ -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
index 486b32cb98a653616ec67ea9177d6fbffa42b1cb..f19e85ab4f27aede750aeeb77738d2b206de386a 100644 (file)
@@ -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
index 9268ba72eae9e6b4c0972f0cbd073a4748e61798..9fc3716c8cb74f6d53be8715a88b10b1ab472e0c 100644 (file)
@@ -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;
 
index fb4b1d148a0f6fd3104fac9b4111a6da0ee73e09..1ffe8fd8aca2e00d07f2e75e3a60848cd6a235d1 100644 (file)
@@ -2,7 +2,7 @@
 #include       <libc.h>
 
 void*
-memchr(void *ap, int c, ulong n)
+memchr(void *ap, int c, usize n)
 {
        uchar *sp;
 
index 211752b03a69fcf931b46e495f1b98081a85e21e..f33a8690b6e7c0248231ba1e69166ea3cdf5a5fd 100644 (file)
@@ -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;
index 16ef43277b4a12f34bc5d4b484509d1d70926074..5d6f28419e4dff77bd95975be0305bd5211521f9 100644 (file)
@@ -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);
 }
index 431d6bb304c1118d837495f127310dcf6167ca00..c1c9ab7dab83051e615e82b7753b6a57948bac20 100644 (file)
@@ -2,7 +2,7 @@
 #include       <libc.h>
 
 void*
-memset(void *ap, int c, ulong n)
+memset(void *ap, int c, usize n)
 {
        char *p;