diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-04 16:11:48 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-04 16:11:48 +0200 |
commit | 986886f2b8ab4a7e1b3d66e99934d8fdab537be9 (patch) | |
tree | c49e9711e7229a8d12f5b5b0ab38b5bd6c27b711 /sys/src/ape/lib/ap | |
parent | f7703d6971383c39f981f5676a4e28a6371c3997 (diff) |
retire the dec alpha port
Diffstat (limited to 'sys/src/ape/lib/ap')
-rw-r--r-- | sys/src/ape/lib/ap/alpha/_seek.c | 12 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/cycles.c | 5 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/divl.s | 189 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/divq.s | 191 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/getfcr.s | 33 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/lock.c | 26 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/main9.s | 39 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/main9p.s | 56 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/memcpy.c | 7 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/memmove.s | 197 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/memset.s | 61 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/mkfile | 23 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/notetramp.c | 72 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/setjmp.s | 24 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/alpha/tas.s | 10 |
15 files changed, 0 insertions, 945 deletions
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 |