summaryrefslogtreecommitdiff
path: root/sys/src/ape
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/ape
parentf7703d6971383c39f981f5676a4e28a6371c3997 (diff)
retire the dec alpha port
Diffstat (limited to 'sys/src/ape')
-rw-r--r--sys/src/ape/lib/9/alpha/getcallerpc.s4
-rw-r--r--sys/src/ape/lib/9/alpha/getfcr.s57
-rw-r--r--sys/src/ape/lib/ap/alpha/_seek.c12
-rw-r--r--sys/src/ape/lib/ap/alpha/cycles.c5
-rw-r--r--sys/src/ape/lib/ap/alpha/divl.s189
-rw-r--r--sys/src/ape/lib/ap/alpha/divq.s191
-rw-r--r--sys/src/ape/lib/ap/alpha/getfcr.s33
-rw-r--r--sys/src/ape/lib/ap/alpha/lock.c26
-rw-r--r--sys/src/ape/lib/ap/alpha/main9.s39
-rw-r--r--sys/src/ape/lib/ap/alpha/main9p.s56
-rw-r--r--sys/src/ape/lib/ap/alpha/memcpy.c7
-rw-r--r--sys/src/ape/lib/ap/alpha/memmove.s197
-rw-r--r--sys/src/ape/lib/ap/alpha/memset.s61
-rw-r--r--sys/src/ape/lib/ap/alpha/mkfile23
-rw-r--r--sys/src/ape/lib/ap/alpha/notetramp.c72
-rw-r--r--sys/src/ape/lib/ap/alpha/setjmp.s24
-rw-r--r--sys/src/ape/lib/ap/alpha/tas.s10
-rw-r--r--sys/src/ape/lib/mp/alpha/mkfile15
-rw-r--r--sys/src/ape/lib/sec/alpha/mkfile15
19 files changed, 0 insertions, 1036 deletions
diff --git a/sys/src/ape/lib/9/alpha/getcallerpc.s b/sys/src/ape/lib/9/alpha/getcallerpc.s
deleted file mode 100644
index 2214561be..000000000
--- a/sys/src/ape/lib/9/alpha/getcallerpc.s
+++ /dev/null
@@ -1,4 +0,0 @@
-TEXT getcallerpc(SB), $-8
- MOVL 0(SP), R0
- RET
-
diff --git a/sys/src/ape/lib/9/alpha/getfcr.s b/sys/src/ape/lib/9/alpha/getfcr.s
deleted file mode 100644
index 06df5de98..000000000
--- a/sys/src/ape/lib/9/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/ape/lib/ap/alpha/_seek.c b/sys/src/ape/lib/ap/alpha/_seek.c
deleted file mode 100644
index 7bccc0661..000000000
--- a/sys/src/ape/lib/ap/alpha/_seek.c
+++ /dev/null
@@ -1,12 +0,0 @@
-extern long __SEEK(long long*, int, long long, int);
-
-long long
-_SEEK(int fd, long long o, int p)
-{
- long long l;
-
- if(__SEEK(&l, fd, o, p) < 0)
- l = -1;
- return l;
-}
-
diff --git a/sys/src/ape/lib/ap/alpha/cycles.c b/sys/src/ape/lib/ap/alpha/cycles.c
deleted file mode 100644
index 1c32bc732..000000000
--- a/sys/src/ape/lib/ap/alpha/cycles.c
+++ /dev/null
@@ -1,5 +0,0 @@
-void
-_cycles(unsigned long long *u)
-{
- *u = 0;
-}
diff --git a/sys/src/ape/lib/ap/alpha/divl.s b/sys/src/ape/lib/ap/alpha/divl.s
deleted file mode 100644
index bce568a8e..000000000
--- a/sys/src/ape/lib/ap/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/ape/lib/ap/alpha/divq.s b/sys/src/ape/lib/ap/alpha/divq.s
deleted file mode 100644
index 98a58e4a8..000000000
--- a/sys/src/ape/lib/ap/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/ape/lib/ap/alpha/getfcr.s b/sys/src/ape/lib/ap/alpha/getfcr.s
deleted file mode 100644
index e3c9f02d8..000000000
--- a/sys/src/ape/lib/ap/alpha/getfcr.s
+++ /dev/null
@@ -1,33 +0,0 @@
-TEXT getfsr(SB), $8
- TRAPB
- MOVT FPCR, F0
- TRAPB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R0
- RET
-
-TEXT setfsr(SB), $8
- SLLQ $32, R0
- MOVQ R0, tmp-8(SP)
- MOVT tmp-8(SP), F0
- TRAPB
- MOVT F0, FPCR
- TRAPB
- RET
-
-TEXT getfcr(SB), $8
- TRAPB
- MOVT FPCR, F0
- TRAPB
- MOVT F0, tmp-8(SP)
- MOVL tmp-4(SP), R0
- RET
-
-TEXT setfcr(SB), $8
- SLLQ $32, R0
- MOVQ R0, tmp-8(SP)
- MOVT tmp-8(SP), F0
- TRAPB
- MOVT F0, FPCR
- TRAPB
- RET
diff --git a/sys/src/ape/lib/ap/alpha/lock.c b/sys/src/ape/lib/ap/alpha/lock.c
deleted file mode 100644
index 91c0ba233..000000000
--- a/sys/src/ape/lib/ap/alpha/lock.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#define _LOCK_EXTENSION
-#include "../plan9/sys9.h"
-#include <lock.h>
-
-int tas(int*);
-
-void
-lock(Lock *lk)
-{
- while(tas(&lk->val))
- _SLEEP(0);
-}
-
-int
-canlock(Lock *lk)
-{
- if(tas(&lk->val))
- return 0;
- return 1;
-}
-
-void
-unlock(Lock *lk)
-{
- lk->val = 0;
-}
diff --git a/sys/src/ape/lib/ap/alpha/main9.s b/sys/src/ape/lib/ap/alpha/main9.s
deleted file mode 100644
index 3be62f946..000000000
--- a/sys/src/ape/lib/ap/alpha/main9.s
+++ /dev/null
@@ -1,39 +0,0 @@
-#define NPRIVATES 16
-
-GLOBL _tos(SB), $4
-GLOBL _errnoloc(SB), $4
-GLOBL _plan9err(SB), $4
-GLOBL _privates(SB), $4
-GLOBL _nprivates(SB), $4
-
-TEXT _main(SB), 1, $(20+4+128+NPRIVATES*4)
- MOVQ $setSB(SB), R29
-
- /* _tos = arg */
- MOVL R0, _tos(SB)
-
- MOVL $20(R30), R1
- MOVL R1, _errnoloc(SB)
- ADDL $4, R1
- MOVL R1, _plan9err(SB)
- ADDL $128, R1
- MOVL R1, _privates(SB)
- MOVQ $NPRIVATES, R1
- MOVL R1, _nprivates(SB)
-
- JSR _envsetup(SB)
-
- /* main(argc, argv, environ); */
- MOVL inargc-4(FP), R0
- MOVL $inargv+0(FP), R1
- MOVL environ(SB), R2
- MOVL R0, 8(R30)
- MOVL R1, 12(R30)
- MOVL R2, 16(R30)
- JSR main(SB)
-loop:
- MOVL R0, 8(R30)
- JSR exit(SB)
- MOVQ $_divq(SB), R31 /* force loading of divq */
- MOVQ $_divl(SB), R31 /* force loading of divl */
- JMP loop
diff --git a/sys/src/ape/lib/ap/alpha/main9p.s b/sys/src/ape/lib/ap/alpha/main9p.s
deleted file mode 100644
index 95d04bb25..000000000
--- a/sys/src/ape/lib/ap/alpha/main9p.s
+++ /dev/null
@@ -1,56 +0,0 @@
-#define NPRIVATES 16
-
-GLOBL _tos(SB), $4
-GLOBL _errnoloc(SB), $4
-GLOBL _plan9err(SB), $4
-GLOBL _privates(SB), $4
-GLOBL _nprivates(SB), $4
-
-TEXT _mainp(SB), 1, $(20+4+128+NPRIVATES*4)
- MOVQ $setSB(SB), R29
-
- /* _tos = arg */
- MOVL R0, _tos(SB)
-
- MOVL $20(R30), R1
- MOVL R1, _errnoloc(SB)
- ADDL $4, R1
- MOVL R1, _plan9err(SB)
- ADDL $128, R1
- MOVL R1, _privates(SB)
- MOVQ $NPRIVATES, R1
- MOVL R1, _nprivates(SB)
-
- /* _profmain(); */
- JSR _profmain(SB)
-
- /* _tos->prof.pp = _tos->prof.next; */
- MOVL _tos+0(SB), R1
- MOVL 4(R1), R2
- MOVL R2, 0(R1)
-
- JSR _envsetup(SB)
-
- /* main(argc, argv, environ); */
- MOVL inargc-4(FP), R0
- MOVL $inargv+0(FP), R1
- MOVL environ(SB), R2
- MOVL R0, 8(R30)
- MOVL R1, 12(R30)
- MOVL R2, 16(R30)
- JSR main(SB)
-loop:
- MOVL R0, 8(R30)
- JSR exit(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
diff --git a/sys/src/ape/lib/ap/alpha/memcpy.c b/sys/src/ape/lib/ap/alpha/memcpy.c
deleted file mode 100644
index 7bbb55c6e..000000000
--- a/sys/src/ape/lib/ap/alpha/memcpy.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <string.h>
-
-void*
-memcpy(void *a1, const void *a2, size_t n)
-{
- return memmove(a1, a2, n);
-}
diff --git a/sys/src/ape/lib/ap/alpha/memmove.s b/sys/src/ape/lib/ap/alpha/memmove.s
deleted file mode 100644
index 0fafb752d..000000000
--- a/sys/src/ape/lib/ap/alpha/memmove.s
+++ /dev/null
@@ -1,197 +0,0 @@
-#define QUAD 8
-#define ALIGN 64
-#define BLOCK 64
-
-TEXT memmove(SB), $0
- 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
diff --git a/sys/src/ape/lib/ap/alpha/memset.s b/sys/src/ape/lib/ap/alpha/memset.s
deleted file mode 100644
index e3cfd468b..000000000
--- a/sys/src/ape/lib/ap/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/ape/lib/ap/alpha/mkfile b/sys/src/ape/lib/ap/alpha/mkfile
deleted file mode 100644
index 6a1c3ca60..000000000
--- a/sys/src/ape/lib/ap/alpha/mkfile
+++ /dev/null
@@ -1,23 +0,0 @@
-APE=/sys/src/ape
-<$APE/config
-LIB=/$objtype/lib/ape/libap.a
-OFILES=\
- _seek.$O\
- cycles.$O\
- divl.$O\
- divq.$O\
- getfcr.$O\
- lock.$O\
- main9.$O\
- main9p.$O\
- memcpy.$O\
- memmove.$O\
- memset.$O\
- notetramp.$O\
- setjmp.$O\
- tas.$O\
-
-</sys/src/cmd/mksyslib
-
-CFLAGS=-c -D_POSIX_SOURCE -D_PLAN9_SOURCE
-
diff --git a/sys/src/ape/lib/ap/alpha/notetramp.c b/sys/src/ape/lib/ap/alpha/notetramp.c
deleted file mode 100644
index 6b1be6641..000000000
--- a/sys/src/ape/lib/ap/alpha/notetramp.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include "../plan9/lib.h"
-#include "../plan9/sys9.h"
-#include <signal.h>
-#include <setjmp.h>
-
-/* A stack to hold pcs when signals nest */
-#define MAXSIGSTACK 20
-typedef struct Pcstack Pcstack;
-static struct Pcstack {
- int sig;
- void (*hdlr)(int, char*, Ureg*);
- unsigned long restorepc;
- Ureg *u;
-} pcstack[MAXSIGSTACK];
-static int nstack = 0;
-
-static void notecont(Ureg*, char*);
-
-void
-_notetramp(int sig, void (*hdlr)(int, char*, Ureg*), Ureg *u)
-{
- Pcstack *p;
-
- if(nstack >= MAXSIGSTACK)
- _NOTED(1); /* nesting too deep; just do system default */
- p = &pcstack[nstack];
- p->restorepc = u->pc;
- p->sig = sig;
- p->hdlr = hdlr;
- p->u = u;
- nstack++;
- u->pc = (unsigned long) notecont;
- _NOTED(2); /* NSAVE: clear note but hold state */
-}
-
-static void
-notecont(Ureg *u, char *s)
-{
- Pcstack *p;
- void(*f)(int, char*, Ureg*);
-
- p = &pcstack[nstack-1];
- f = p->hdlr;
- u->pc = p->restorepc;
- nstack--;
- (*f)(p->sig, s, u);
- _NOTED(3); /* NRSTR */
-}
-
-#define JMPBUFPC 1
-#define JMPBUFSP 0
-
-extern sigset_t _psigblocked;
-
-void
-siglongjmp(sigjmp_buf j, int ret)
-{
- struct Ureg *u;
-
- if(j[0])
- _psigblocked = j[1];
- if(nstack == 0 || pcstack[nstack-1].u->sp > j[2+JMPBUFSP])
- longjmp(j+2, ret);
- u = pcstack[nstack-1].u;
- nstack--;
- u->r0 = ret;
- if(ret == 0)
- u->r0 = 1;
- u->pc = j[2+JMPBUFPC];
- u->sp = j[2+JMPBUFSP];
- _NOTED(3); /* NRSTR */
-}
diff --git a/sys/src/ape/lib/ap/alpha/setjmp.s b/sys/src/ape/lib/ap/alpha/setjmp.s
deleted file mode 100644
index 3289029a7..000000000
--- a/sys/src/ape/lib/ap/alpha/setjmp.s
+++ /dev/null
@@ -1,24 +0,0 @@
-TEXT setjmp(SB), 1, $-8
- MOVL R30, (R0)
- MOVL R26, 4(R0)
- MOVQ $0, R0
- RET
-
-TEXT sigsetjmp(SB), 1, $-8
- MOVL savemask+4(FP), R3
- MOVL R3, 0(R0)
- MOVL $_psigblocked(SB), R3
- MOVL R3, 4(R0)
- MOVL R30, 8(R0)
- MOVL R26, 12(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/ape/lib/ap/alpha/tas.s b/sys/src/ape/lib/ap/alpha/tas.s
deleted file mode 100644
index 8b3164c3a..000000000
--- a/sys/src/ape/lib/ap/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
diff --git a/sys/src/ape/lib/mp/alpha/mkfile b/sys/src/ape/lib/mp/alpha/mkfile
deleted file mode 100644
index 73b43cf84..000000000
--- a/sys/src/ape/lib/mp/alpha/mkfile
+++ /dev/null
@@ -1,15 +0,0 @@
-APE=/sys/src/ape
-<$APE/config
-
-LIB=/$objtype/lib/ape/libmp.a
-
-HFILES=\
- /sys/include/ape/mp.h\
- ../../../../libmp/port/dat.h
-
-OFILES=\
-
-UPDATE=mkfile\
- $HFILES\
-
-</sys/src/cmd/mksyslib
diff --git a/sys/src/ape/lib/sec/alpha/mkfile b/sys/src/ape/lib/sec/alpha/mkfile
deleted file mode 100644
index 473538cac..000000000
--- a/sys/src/ape/lib/sec/alpha/mkfile
+++ /dev/null
@@ -1,15 +0,0 @@
-APE=/sys/src/ape
-<$APE/config
-
-LIB=/$objtype/lib/ape/libsec.a
-
-OFILES= \
-
-HFILES=/sys/include/ape/libsec.h
-
-UPDATE=mkfile
-
-</sys/src/cmd/mksyslib
-
-%.$O: /sys/src/libsec/$objtype/%.s
- $AS $AFLAGS /sys/src/libsec/$objtype/$stem.s