summaryrefslogtreecommitdiff
path: root/sys/src/libc
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-05-04 16:11:48 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-05-04 16:11:48 +0200
commit986886f2b8ab4a7e1b3d66e99934d8fdab537be9 (patch)
treec49e9711e7229a8d12f5b5b0ab38b5bd6c27b711 /sys/src/libc
parentf7703d6971383c39f981f5676a4e28a6371c3997 (diff)
retire the dec alpha port
Diffstat (limited to 'sys/src/libc')
-rw-r--r--sys/src/libc/alpha/_seek.c14
-rw-r--r--sys/src/libc/alpha/argv0.s4
-rw-r--r--sys/src/libc/alpha/atom.s67
-rw-r--r--sys/src/libc/alpha/cycles.c7
-rw-r--r--sys/src/libc/alpha/divl.s189
-rw-r--r--sys/src/libc/alpha/divq.s191
-rw-r--r--sys/src/libc/alpha/getcallerpc.s4
-rw-r--r--sys/src/libc/alpha/getfcr.s57
-rw-r--r--sys/src/libc/alpha/main9.s27
-rw-r--r--sys/src/libc/alpha/main9p.s38
-rw-r--r--sys/src/libc/alpha/memmove.s201
-rw-r--r--sys/src/libc/alpha/memset.s61
-rw-r--r--sys/src/libc/alpha/mkfile33
-rw-r--r--sys/src/libc/alpha/notejmp.c16
-rw-r--r--sys/src/libc/alpha/setjmp.s14
-rw-r--r--sys/src/libc/alpha/tas.s10
16 files changed, 0 insertions, 933 deletions
diff --git a/sys/src/libc/alpha/_seek.c b/sys/src/libc/alpha/_seek.c
deleted file mode 100644
index 0aa741a66..000000000
--- a/sys/src/libc/alpha/_seek.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <u.h>
-#include <libc.h>
-
-extern int _seek(vlong*, int, vlong, int);
-
-vlong
-seek(int fd, vlong o, int p)
-{
- vlong l;
-
- if(_seek(&l, fd, o, p) < 0)
- l = -1LL;
- return l;
-}
diff --git a/sys/src/libc/alpha/argv0.s b/sys/src/libc/alpha/argv0.s
deleted file mode 100644
index 8d9f9b29b..000000000
--- a/sys/src/libc/alpha/argv0.s
+++ /dev/null
@@ -1,4 +0,0 @@
-GLOBL argv0(SB), $4
-GLOBL _tos(SB), $4
-GLOBL _privates(SB), $4
-GLOBL _nprivates(SB), $4
diff --git a/sys/src/libc/alpha/atom.s b/sys/src/libc/alpha/atom.s
deleted file mode 100644
index e9dbd14aa..000000000
--- a/sys/src/libc/alpha/atom.s
+++ /dev/null
@@ -1,67 +0,0 @@
-TEXT ainc(SB),$-8 /* long ainc(long *); */
- MOVQ R0, R1 /* p */
-inc1:
- MOVLL (R1), R2 /* *p */
- ADDL $1, R2
- MOVQ R2, R0 /* copy to return */
- MOVLC R2, (R1) /* (*p)++ */
- BEQ R2, inc1 /* write failed, retry */
- RET
-
-TEXT adec(SB),$-8 /* long ainc(long *); */
- MOVQ R0, R1 /* p */
-dec1:
- MOVLL (R1), R2 /* *p */
- SUBL $1, R2
- MOVQ R2, R0 /* copy to return */
- MOVLC R2, (R1) /* (*p)++ */
- BEQ R2, dec1 /* write failed, retry */
- RET
-
-TEXT _xinc(SB), $-8
- MOVQ R0, R1 /* p */
-xinc1:
- MOVLL (R1), R0 /* *p */
- ADDL $1, R0
- MOVLC R0, (R1) /* (*p)++ */
- BEQ R0, xinc1 /* write failed, retry */
- RET
-
-TEXT _xdec(SB), $-8
- MOVQ R0, R1 /* p */
-xdec1:
- MOVLL (R1), R0 /* *p */
- SUBL $1, R0
- MOVQ R0, R2
- MOVLC R2, (R1) /* --(*p) */
- BEQ R2, xdec1 /* write failed, retry */
- RET
-
-TEXT cas(SB), $-8
-TEXT casp(SB), $-8
- MOVQ R0, R1 /* p */
- MOVL old+4(FP), R2
- MOVL new+8(FP), R3
- MOVLL (R1), R0
- CMPEQ R0, R2, R4
- BEQ R4, fail /* if R0 != [sic] R2, goto fail */
- MOVQ R3, R0
- MOVLC R0, (R1)
- RET
-fail:
- MOVL $0, R0
- RET
-
-TEXT loadlink(SB), $-8
- MOVLL (R0), R0
- RET
-
-TEXT storecond(SB), $-8
- MOVW val+4(FP), R1
- MOVLC R1, (R0)
- BEQ R1, storecondfail /* write failed */
- MOVW $1, R0
- RET
-storecondfail:
- MOVW $0, R0
- RET
diff --git a/sys/src/libc/alpha/cycles.c b/sys/src/libc/alpha/cycles.c
deleted file mode 100644
index 9bad3a989..000000000
--- a/sys/src/libc/alpha/cycles.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <u.h>
-#include <libc.h>
-
-void cycles(uvlong*u)
-{
- *u = 0LL;
-}
diff --git a/sys/src/libc/alpha/divl.s b/sys/src/libc/alpha/divl.s
deleted file mode 100644
index bce568a8e..000000000
--- a/sys/src/libc/alpha/divl.s
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * ulong
- * _udiv(ulong num, ulong den)
- * {
- * int i;
- * ulong quo;
- *
- * if(den == 0)
- * *(ulong*)-1 = 0;
- * quo = num;
- * if(quo > 1<<(32-1))
- * quo = 1<<(32-1);
- * for(i=0; den<quo; i++)
- * den <<= 1;
- * quo = 0;
- * for(; i>=0; i--) {
- * quo <<= 1;
- * if(num >= den) {
- * num -= den;
- * quo |= 1;
- * }
- * den >>= 1;
- * }
- * return quo::num;
- * }
- */
-
-#define NOPROF 1
-
-/*
- * calling sequence:
- * num: 8(R30)
- * den: 12(R30)
- * returns
- * quo: 8(R30)
- * rem: 12(R30)
- */
-TEXT _udivmodl(SB), NOPROF, $-8
-
- MOVQ $-1, R11
- SLLQ $31, R11 /* (1<<31) in canonical form */
- MOVL 8(R30), R23 /* numerator */
- MOVL 12(R30), R10 /* denominator */
- BNE R10, udm20
- MOVQ R31, -1(R31) /* fault -- divide by zero; todo: use gentrap? */
-udm20:
- MOVQ R23, R12
- BGE R12, udm34
- MOVQ R11, R12
-udm34:
- MOVQ R31, R11
-udm38:
- CMPUGE R10, R12, R24
- BNE R24, udm54
- SLLL $1, R10
- ADDQ $1, R11
- JMP udm38
-udm54:
- MOVQ R31, R12
-udm58:
- BLT R11, udm8c
- SLLL $1, R12
- CMPUGE R23, R10, R24
- BEQ R24, udm7c
- SUBL R10, R23
- OR $1, R12
-udm7c:
- SRLL $1, R10
- SUBQ $1, R11
- JMP udm58
-udm8c:
- MOVL R12, 8(R30) /* quotient */
- MOVL R23, 12(R30) /* remainder */
- RET
-
-/*
- * save working registers
- * and bring in num/den parameters
- */
-TEXT _unsargl(SB), NOPROF, $-8
- MOVQ R10, 24(R30)
- MOVQ R11, 32(R30)
- MOVQ R12, 40(R30)
- MOVQ R23, 48(R30)
- MOVQ R24, 56(R30)
-
- MOVL R27, 8(R30)
- MOVL 72(R30), R27
- MOVL R27, 12(R30)
-
- RET
-
-/*
- * save working registers
- * and bring in absolute value
- * of num/den parameters
- */
-TEXT _absargl(SB), NOPROF, $-8
- MOVQ R10, 24(R30)
- MOVQ R11, 32(R30)
- MOVQ R12, 40(R30)
- MOVQ R23, 48(R30)
- MOVQ R24, 56(R30)
-
- MOVL R27, 64(R30)
- BGE R27, ab1
- SUBL R27, R31, R27
-ab1:
- MOVL R27, 8(R30) /* numerator */
-
- MOVL 72(R30), R27
- BGE R27, ab2
- SUBL R27, R31, R27
-ab2:
- MOVL R27, 12(R30) /* denominator */
- RET
-
-/*
- * restore registers and
- * return to original caller
- * answer is in R27
- */
-TEXT _retargl(SB), NOPROF, $-8
- MOVQ 24(R30), R10
- MOVQ 32(R30), R11
- MOVQ 40(R30), R12
- MOVQ 48(R30), R23
- MOVQ 56(R30), R24
- MOVL 0(R30), R26
-
- ADDQ $64, R30
- RET /* back to main sequence */
-
-TEXT _divl(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVL R26, 0(R30)
-
- JSR _absargl(SB)
- JSR _udivmodl(SB)
- MOVL 8(R30), R27
-
- MOVL 64(R30), R10 /* clean up the sign */
- MOVL 72(R30), R11
- XOR R11, R10
- BGE R10, div1
- SUBL R27, R31, R27
-div1:
-
- JSR _retargl(SB)
- RET /* not executed */
-
-TEXT _divlu(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVL R26, 0(R30)
-
- JSR _unsargl(SB)
- JSR _udivmodl(SB)
- MOVL 8(R30), R27
-
- JSR _retargl(SB)
- RET /* not executed */
-
-TEXT _modl(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVL R26, 0(R30)
-
- JSR _absargl(SB)
- JSR _udivmodl(SB)
- MOVL 12(R30), R27
-
- MOVL 64(R30), R10 /* clean up the sign */
- BGE R10, div2
- SUBL R27, R31, R27
-div2:
-
- JSR _retargl(SB)
- RET /* not executed */
-
-TEXT _modlu(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVL R26, 0(R30)
-
- JSR _unsargl(SB)
- JSR _udivmodl(SB)
- MOVL 12(R30), R27
-
- JSR _retargl(SB)
- RET /* not executed */
-
diff --git a/sys/src/libc/alpha/divq.s b/sys/src/libc/alpha/divq.s
deleted file mode 100644
index 98a58e4a8..000000000
--- a/sys/src/libc/alpha/divq.s
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * uvlong
- * _udiv(uvlong num, uvlong den)
- * {
- * int i;
- * uvlong quo;
- *
- * if(den == 0)
- * *(ulong*)-1 = 0;
- * quo = num;
- * if(quo > 1<<(64-1))
- * quo = 1<<(64-1);
- * for(i=0; den<quo; i++)
- * den <<= 1;
- * quo = 0;
- * for(; i>=0; i--) {
- * quo <<= 1;
- * if(num >= den) {
- * num -= den;
- * quo |= 1;
- * }
- * den >>= 1;
- * }
- * return quo::num;
- * }
- */
-
-#define NOPROF 1
-
-/*
- * calling sequence:
- * num: 8(R30)
- * den: 16(R30)
- * returns
- * quo: 8(R30)
- * rem: 16(R30)
- */
-TEXT _udivmodq(SB), NOPROF, $-8
-
- MOVQ $1, R11
- SLLQ $63, R11
- MOVQ 8(R30), R23 /* numerator */
- MOVQ 16(R30), R10 /* denominator */
- BNE R10, udm20
- MOVQ R31, -1(R31) /* fault -- divide by zero; todo: use gentrap? */
-udm20:
- MOVQ R23, R12
- BGE R12, udm34
- MOVQ R11, R12
-udm34:
- MOVQ R31, R11
-udm38:
- CMPUGE R10, R12, R24
- BNE R24, udm54
- SLLQ $1, R10
- ADDQ $1, R11
- JMP udm38
-udm54:
- MOVQ R31, R12
-udm58:
- BLT R11, udm8c
- SLLQ $1, R12
- CMPUGE R23, R10, R24
- BEQ R24, udm7c
- SUBQ R10, R23
- OR $1, R12
-udm7c:
- SRLQ $1, R10
- SUBQ $1, R11
- JMP udm58
-udm8c:
- MOVQ R12, 8(R30) /* quotient */
- MOVQ R23, 16(R30) /* remainder */
- RET
-
-/*
- * save working registers
- * and bring in num/den parameters
- */
-TEXT _unsargq(SB), NOPROF, $-8
- MOVQ R10, 24(R30)
- MOVQ R11, 32(R30)
- MOVQ R12, 40(R30)
- MOVQ R23, 48(R30)
- MOVQ R24, 56(R30)
-
- MOVQ R27, 8(R30)
- MOVQ 72(R30), R27
- MOVQ R27, 16(R30)
-
-MOVQ (R30), R10 /* debug */
- RET
-
-/*
- * save working registers
- * and bring in absolute value
- * of num/den parameters
- */
-TEXT _absargq(SB), NOPROF, $-8
- MOVQ R10, 24(R30)
- MOVQ R11, 32(R30)
- MOVQ R12, 40(R30)
- MOVQ R23, 48(R30)
- MOVQ R24, 56(R30)
-
- MOVQ R27, 64(R30)
- BGE R27, ab1
- SUBQ R27, R31, R27
-ab1:
- MOVQ R27, 8(R30) /* numerator */
-
- MOVQ 72(R30), R27
- BGE R27, ab2
- SUBQ R27, R31, R27
-ab2:
- MOVQ R27, 16(R30) /* denominator */
-MOVQ (R30), R10 /* debug */
- RET
-
-/*
- * restore registers and
- * return to original caller
- * answer is in R27
- */
-TEXT _retargq(SB), NOPROF, $-8
- MOVQ 24(R30), R10
- MOVQ 32(R30), R11
- MOVQ 40(R30), R12
- MOVQ 48(R30), R23
- MOVQ 56(R30), R24
- MOVL 0(R30), R26
-
- ADDQ $64, R30
- RET /* back to main sequence */
-
-TEXT _divq(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVQ R26, 0(R30)
-
- JSR _absargq(SB)
- JSR _udivmodq(SB)
- MOVQ 8(R30), R27
-
- MOVQ 64(R30), R10 /* clean up the sign */
- MOVQ 72(R30), R11
- XOR R11, R10
- BGE R10, div1
- SUBQ R27, R31, R27
-div1:
-
- JSR _retargq(SB)
- RET /* not executed */
-
-TEXT _divqu(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVQ R26, 0(R30)
-
- JSR _unsargq(SB)
- JSR _udivmodq(SB)
- MOVQ 8(R30), R27
-
- JSR _retargq(SB)
- RET /* not executed */
-
-TEXT _modq(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVQ R26, 0(R30)
-
- JSR _absargq(SB)
- JSR _udivmodq(SB)
- MOVQ 16(R30), R27
-
- MOVQ 64(R30), R10 /* clean up the sign */
- BGE R10, div2
- SUBQ R27, R31, R27
-div2:
-
- JSR _retargq(SB)
- RET /* not executed */
-
-TEXT _modqu(SB), NOPROF, $-8
- SUBQ $64, R30 /* 5 reg save, 2 parameters, link */
- MOVQ R26, 0(R30)
-
- JSR _unsargq(SB)
- JSR _udivmodq(SB)
- MOVQ 16(R30), R27
-
- JSR _retargq(SB)
- RET /* not executed */
-
diff --git a/sys/src/libc/alpha/getcallerpc.s b/sys/src/libc/alpha/getcallerpc.s
deleted file mode 100644
index 2214561be..000000000
--- a/sys/src/libc/alpha/getcallerpc.s
+++ /dev/null
@@ -1,4 +0,0 @@
-TEXT getcallerpc(SB), $-8
- MOVL 0(SP), R0
- RET
-
diff --git a/sys/src/libc/alpha/getfcr.s b/sys/src/libc/alpha/getfcr.s
deleted file mode 100644
index 06df5de98..000000000
--- a/sys/src/libc/alpha/getfcr.s
+++ /dev/null
@@ -1,57 +0,0 @@
-#define EXCB WORD $0x60000400 /* until 7a/7l catch up */
-
-TEXT getfsr(SB), $8
- EXCB
- MOVT FPCR, F0
- EXCB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R1
- MOVQ $0x01e00000, R2
- AND R2, R1, R0
- RET
-
-TEXT setfsr(SB), $8
- MOVQ $0x01e00000, R2
- EXCB
- MOVT FPCR, F0
- EXCB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R1
- ANDNOT R2, R1, R3
- AND R2, R0, R4
- OR R3, R4, R5
- MOVL R5, tmp-4(SP)
- MOVT tmp-8(SP), F0
- EXCB
- MOVT F0, FPCR
- EXCB
- RET
-
-TEXT getfcr(SB), $8
- EXCB
- MOVT FPCR, F0
- EXCB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R1
- MOVQ $0x700c0000, R2
- AND R2, R1, R0
- XOR R2, R0
- RET
-
-TEXT setfcr(SB), $8
- MOVQ $0x700c0000, R2
- XOR R2, R0
- EXCB
- MOVT FPCR, F0
- EXCB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R1
- ANDNOT R2, R1, R3
- AND R2, R0, R4
- OR R3, R4, R5
- MOVL R5, tmp-4(SP)
- MOVT tmp-8(SP), F0
- EXCB
- MOVT F0, FPCR
- EXCB
- RET
diff --git a/sys/src/libc/alpha/main9.s b/sys/src/libc/alpha/main9.s
deleted file mode 100644
index 5e51d5d28..000000000
--- a/sys/src/libc/alpha/main9.s
+++ /dev/null
@@ -1,27 +0,0 @@
-#define NPRIVATES 16
-
-TEXT _main(SB), 1, $(16 + NPRIVATES*4)
-
- MOVQ $setSB(SB), R29
- MOVL R0, _tos(SB)
-
- MOVQ $p-64(SP),R1
- MOVL R1,_privates+0(SB)
- MOVQ $16,R1
- MOVL R1,_nprivates+0(SB)
-
- MOVL inargc-8(FP), R0
- MOVL $inargv-4(FP), R1
- MOVL R0, 8(R30)
- MOVL R1, 12(R30)
- JSR main(SB)
-loop:
- MOVL $_exitstr<>(SB), R0
- MOVL R0, 8(R30)
- JSR exits(SB)
- MOVQ $_divq(SB), R31 /* force loading of divq */
- MOVQ $_divl(SB), R31 /* force loading of divl */
- JMP loop
-
-DATA _exitstr<>+0(SB)/4, $"main"
-GLOBL _exitstr<>+0(SB), $5
diff --git a/sys/src/libc/alpha/main9p.s b/sys/src/libc/alpha/main9p.s
deleted file mode 100644
index 6e24054d7..000000000
--- a/sys/src/libc/alpha/main9p.s
+++ /dev/null
@@ -1,38 +0,0 @@
-#define NPRIVATES 16
-
-TEXT _mainp(SB), 1, $16
-
- MOVQ $setSB(SB), R29
- MOVL R0, _tos(SB)
-
- MOVQ $p-64(SP),R1
- MOVL R1,_privates+0(SB)
- MOVQ $16,R1
- MOVL R1,_nprivates+0(SB)
- JSR _profmain(SB)
- MOVL __prof+4(SB), R0
- MOVL R0, __prof+0(SB)
- MOVL inargc-4(FP), R0
- MOVL $inargv+0(FP), R1
- MOVL R0, 8(R30)
- MOVL R1, 12(R30)
- JSR main(SB)
-loop:
- MOVQ $exits<>(SB), R0
- MOVL R0, 8(R30)
- JSR exits(SB)
- MOVQ $_divq(SB), R31 /* force loading of divq */
- MOVQ $_divl(SB), R31 /* force loading of divl */
- MOVQ $_profin(SB), R31 /* force loading of profile */
- JMP loop
-
-TEXT _saveret(SB), 1, $0
-TEXT _savearg(SB), 1, $0
- RET
-
-TEXT _callpc(SB), 1, $0
- MOVL argp-8(FP), R0
- RET
-
-DATA exits<>+0(SB)/4, $"main"
-GLOBL exits<>+0(SB), $5
diff --git a/sys/src/libc/alpha/memmove.s b/sys/src/libc/alpha/memmove.s
deleted file mode 100644
index f0e822184..000000000
--- a/sys/src/libc/alpha/memmove.s
+++ /dev/null
@@ -1,201 +0,0 @@
-#define QUAD 8
-#define ALIGN 64
-#define BLOCK 64
-
-TEXT memmove(SB), $0
-_memmove:
- MOVL from+4(FP), R7
- MOVL n+8(FP), R10
- MOVQ R0, R6
-
- CMPUGE R7, R0, R5
- BNE R5, _forward
-
- MOVQ R6, R8 /* end to address */
- ADDL R10, R6, R6 /* to+n */
- ADDL R10, R7, R7 /* from+n */
-
- CMPUGE $ALIGN, R10, R1 /* need at least ALIGN bytes */
- BNE R1, _b1tail
-
-_balign:
- AND $(ALIGN-1), R6, R1
- BEQ R1, _baligned
-
- MOVBU -1(R7), R2
- ADDL $-1, R6, R6
- MOVB R2, (R6)
- ADDL $-1, R7, R7
- JMP _balign
-
-_baligned:
- AND $(QUAD-1), R7, R1 /* is the source quad-aligned */
- BNE R1, _bunaligned
-
- ADDL $(BLOCK-1), R8, R9
-_bblock:
- CMPUGE R9, R6, R1
- BNE R1, _b8tail
-
- MOVQ -64(R7), R22
- MOVQ -56(R7), R23
- MOVQ -48(R7), R24
- MOVQ -40(R7), R25
- MOVQ -32(R7), R2
- MOVQ -24(R7), R3
- MOVQ -16(R7), R4
- MOVQ -8(R7), R5
-
- SUBL $64, R6, R6
- SUBL $64, R7, R7
-
- MOVQ R22, (R6)
- MOVQ R23, 8(R6)
- MOVQ R24, 16(R6)
- MOVQ R25, 24(R6)
- MOVQ R2, 32(R6)
- MOVQ R3, 40(R6)
- MOVQ R4, 48(R6)
- MOVQ R5, 56(R6)
- JMP _bblock
-
-_b8tail:
- ADDL $(QUAD-1), R8, R9
-_b8block:
- CMPUGE R9, R6, R1
- BNE R1, _b1tail
-
- MOVQ -8(R7), R2
- SUBL $8, R6
- MOVQ R2, (R6)
- SUBL $8, R7
- JMP _b8block
-
-_b1tail:
- CMPUGE R8, R6, R1
- BNE R1, _ret
-
- MOVBU -1(R7), R2
- SUBL $1, R6, R6
- MOVB R2, (R6)
- SUBL $1, R7, R7
- JMP _b1tail
-_ret:
- RET
-
-_bunaligned:
- ADDL $(16-1), R8, R9
-
-_bu8block:
- CMPUGE R9, R6, R1
- BNE R1, _b1tail
-
- MOVQU -16(R7), R4
- MOVQU -8(R7), R3
- MOVQU (R7), R2
- SUBL $16, R6
- EXTQH R7, R2, R2
- EXTQL R7, R3, R5
- OR R5, R2, R11
- EXTQH R7, R3, R3
- EXTQL R7, R4, R4
- OR R3, R4, R13
- MOVQ R11, 8(R6)
- MOVQ R13, (R6)
- SUBL $16, R7
- JMP _bu8block
-
-_forward:
- ADDL R10, R6, R8 /* end to address */
-
- CMPUGE $ALIGN, R10, R1 /* need at least ALIGN bytes */
- BNE R1, _f1tail
-
-_falign:
- AND $(ALIGN-1), R6, R1
- BEQ R1, _faligned
-
- MOVBU (R7), R2
- ADDL $1, R6, R6
- ADDL $1, R7, R7
- MOVB R2, -1(R6)
- JMP _falign
-
-_faligned:
- AND $(QUAD-1), R7, R1 /* is the source quad-aligned */
- BNE R1, _funaligned
-
- SUBL $(BLOCK-1), R8, R9
-_fblock:
- CMPUGT R9, R6, R1
- BEQ R1, _f8tail
-
- MOVQ (R7), R2
- MOVQ 8(R7), R3
- MOVQ 16(R7), R4
- MOVQ 24(R7), R5
- MOVQ 32(R7), R22
- MOVQ 40(R7), R23
- MOVQ 48(R7), R24
- MOVQ 56(R7), R25
-
- ADDL $64, R6, R6
- ADDL $64, R7, R7
-
- MOVQ R2, -64(R6)
- MOVQ R3, -56(R6)
- MOVQ R4, -48(R6)
- MOVQ R5, -40(R6)
- MOVQ R22, -32(R6)
- MOVQ R23, -24(R6)
- MOVQ R24, -16(R6)
- MOVQ R25, -8(R6)
- JMP _fblock
-
-_f8tail:
- SUBL $(QUAD-1), R8, R9
-_f8block:
- CMPUGT R9, R6, R1
- BEQ R1, _f1tail
-
- MOVQ (R7), R2
- ADDL $8, R6
- ADDL $8, R7
- MOVQ R2, -8(R6)
- JMP _f8block
-
-_f1tail:
- CMPUGT R8, R6, R1
- BEQ R1, _fret
- MOVBU (R7), R2
- ADDL $1, R6, R6
- ADDL $1, R7, R7
- MOVB R2, -1(R6)
- JMP _f1tail
-
-_fret:
- RET
-
-_funaligned:
- SUBL $(16-1), R8, R9
-_fu8block:
- CMPUGT R9, R6, R1
- BEQ R1, _f1tail
-
- MOVQU (R7), R2
- MOVQU 8(R7), R3
- MOVQU 16(R7), R4
- EXTQL R7, R2, R2
- EXTQH R7, R3, R5
- OR R5, R2, R11
- EXTQL R7, R3, R3
- MOVQ R11, (R6)
- EXTQH R7, R4, R4
- OR R3, R4, R11
- MOVQ R11, 8(R6)
- ADDL $16, R6
- ADDL $16, R7
- JMP _fu8block
-
-TEXT memcpy(SB), $0
- JMP _memmove
diff --git a/sys/src/libc/alpha/memset.s b/sys/src/libc/alpha/memset.s
deleted file mode 100644
index e3cfd468b..000000000
--- a/sys/src/libc/alpha/memset.s
+++ /dev/null
@@ -1,61 +0,0 @@
-TEXT memset(SB), $0
- MOVL R0, R6
- MOVBU data+4(FP), R2
- MOVL n+8(FP), R10
-
- ADDL R10, R0, R8
-
- CMPUGE $8, R10, R1 /* need at least 8 bytes */
- BNE R1, _1loop
-
- SLLQ $8, R2, R1 /* replicate the byte */
- OR R1, R2
- SLLQ $16, R2, R1
- OR R1, R2
- SLLQ $32, R2, R1
- OR R1, R2
-
-_align:
- AND $(8-1), R6, R1
- BEQ R1, _aligned
-
- MOVB R2, (R6)
- ADDL $1, R6, R6
- JMP _align
-
-_aligned:
- SUBL $(64-1), R8, R9 /* end pointer minus slop */
-_64loop:
- CMPUGT R9, R6, R1
- BEQ R1, _8tail
-
- MOVQ R2, (R6)
- MOVQ R2, 8(R6)
- MOVQ R2, 16(R6)
- MOVQ R2, 24(R6)
- MOVQ R2, 32(R6)
- MOVQ R2, 40(R6)
- MOVQ R2, 48(R6)
- MOVQ R2, 56(R6)
- ADDL $64, R6, R6
- JMP _64loop
-
-_8tail:
- SUBL $(8-1), R8, R9
-_8loop:
- CMPUGT R9, R6, R1
- BEQ R1, _1loop
-
- MOVQ R2, (R6)
- ADDL $8, R6
- JMP _8loop
-
-_1loop:
- CMPUGT R8, R6, R1
- BEQ R1, _ret
- MOVB R2, (R6)
- ADDL $1, R6
- JMP _1loop
-
-_ret:
- RET
diff --git a/sys/src/libc/alpha/mkfile b/sys/src/libc/alpha/mkfile
deleted file mode 100644
index ef66ac423..000000000
--- a/sys/src/libc/alpha/mkfile
+++ /dev/null
@@ -1,33 +0,0 @@
-objtype=alpha
-</$objtype/mkfile
-
-LIB=/$objtype/lib/libc.a
-SFILES=\
- argv0.s\
- atom.s\
- divl.s\
- divq.s\
- getcallerpc.s\
- getfcr.s\
- main9.s\
- main9p.s\
- memmove.s\
- memset.s\
- setjmp.s\
- tas.s
-
-CFILES=\
- _seek.c\
- cycles.c\
- notejmp.c\
-
-HFILES=/sys/include/libc.h
-
-OFILES=${CFILES:%.c=%.$O} ${SFILES:%.s=%.$O}
-
-UPDATE=mkfile\
- $HFILES\
- $CFILES\
- $SFILES\
-
-</sys/src/cmd/mksyslib
diff --git a/sys/src/libc/alpha/notejmp.c b/sys/src/libc/alpha/notejmp.c
deleted file mode 100644
index dff612bce..000000000
--- a/sys/src/libc/alpha/notejmp.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <u.h>
-#include <libc.h>
-#include <ureg.h>
-
-void
-notejmp(void *vr, jmp_buf j, int ret)
-{
- struct Ureg *r = vr;
-
- r->r0 = ret;
- if(ret == 0)
- r->r0 = 1;
- r->pc = j[JMPBUFPC];
- r->sp = j[JMPBUFSP];
- noted(NCONT);
-}
diff --git a/sys/src/libc/alpha/setjmp.s b/sys/src/libc/alpha/setjmp.s
deleted file mode 100644
index dd423df02..000000000
--- a/sys/src/libc/alpha/setjmp.s
+++ /dev/null
@@ -1,14 +0,0 @@
-TEXT setjmp(SB), 1, $-8
- MOVL R30, (R0)
- MOVL R26, 4(R0)
- MOVQ $0, R0
- RET
-
-TEXT longjmp(SB), 1, $-8
- MOVL r+4(FP), R3
- BNE R3, ok /* ansi: "longjmp(0) => longjmp(1)" */
- MOVQ $1, R3 /* bless their pointed heads */
-ok: MOVL (R0), R30
- MOVL 4(R0), R26
- MOVL R3, R0
- RET
diff --git a/sys/src/libc/alpha/tas.s b/sys/src/libc/alpha/tas.s
deleted file mode 100644
index 613eb7b91..000000000
--- a/sys/src/libc/alpha/tas.s
+++ /dev/null
@@ -1,10 +0,0 @@
-TEXT _tas(SB), $-8
- MOVQ R0, R1 /* l */
-tas1:
- MOVLL (R1), R0 /* l->key */
- BNE R0, tas2
- MOVQ $1, R2
- MOVLC R2, (R1) /* l->key = 1 */
- BEQ R2, tas1 /* write failed, try again? */
-tas2:
- RET