diff options
author | jtb <jtb@pkgsrc.org> | 2003-04-05 05:42:55 +0000 |
---|---|---|
committer | jtb <jtb@pkgsrc.org> | 2003-04-05 05:42:55 +0000 |
commit | 3bfb632e9acfc0b49d16e01f4d93b589453bfae4 (patch) | |
tree | 51dcfc21f67a71992218e41667edca2931166a73 /lang | |
parent | 6cabf3c80fa098177a1cb6337e3f509521ac0e14 (diff) | |
download | pkgsrc-3bfb632e9acfc0b49d16e01f4d93b589453bfae4.tar.gz |
Add support for m68k, VAX, and MIPS based architectures.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/icon/Makefile | 7 | ||||
-rw-r--r-- | lang/icon/distinfo | 16 | ||||
-rw-r--r-- | lang/icon/patches/patch-ac | 13 | ||||
-rw-r--r-- | lang/icon/patches/patch-ad | 30 | ||||
-rw-r--r-- | lang/icon/patches/patch-ae | 8 | ||||
-rw-r--r-- | lang/icon/patches/patch-af | 49 | ||||
-rw-r--r-- | lang/icon/patches/patch-ag | 22 | ||||
-rw-r--r-- | lang/icon/patches/patch-ai | 16 | ||||
-rw-r--r-- | lang/icon/patches/patch-ao | 81 | ||||
-rw-r--r-- | lang/icon/patches/patch-ap | 81 | ||||
-rw-r--r-- | lang/icon/patches/patch-aq | 43 |
11 files changed, 296 insertions, 70 deletions
diff --git a/lang/icon/Makefile b/lang/icon/Makefile index 0bfea2babef..c4d2affb4b2 100644 --- a/lang/icon/Makefile +++ b/lang/icon/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.22 2003/03/24 12:12:08 jtb Exp $ +# $NetBSD: Makefile,v 1.23 2003/04/05 05:42:55 jtb Exp $ DISTNAME= icon.v941src PKGNAME= icon-9.4.1 @@ -10,9 +10,10 @@ MAINTAINER= packages@netbsd.org HOMEPAGE= http://www.cs.arizona.edu/icon/index.htm COMMENT= The Icon programming language -ONLY_FOR_PLATFORM= NetBSD-*-alpha NetBSD-*-i386 NetBSD-*-sparc NetBSD-*-powerpc +ONLY_FOR_PLATFORM= NetBSD-*-alpha NetBSD-*-i386 NetBSD-*-sparc NetBSD-*-powerpc \ + NetBSD-*-mipseb NetBSD-*-mipsel NetBSD-*-m68k NetBSD-*-vax -CONFIGURE_TARGET?= X-Configure +CONFIGURE_TARGET= X-Configure ALL_TARGET= All pre-build: diff --git a/lang/icon/distinfo b/lang/icon/distinfo index 945408f7d61..3c14eab65e8 100644 --- a/lang/icon/distinfo +++ b/lang/icon/distinfo @@ -1,20 +1,24 @@ -$NetBSD: distinfo,v 1.6 2003/03/24 12:12:08 jtb Exp $ +$NetBSD: distinfo,v 1.7 2003/04/05 05:42:56 jtb Exp $ SHA1 (icon.v941src.tgz) = 04ed005302c2652c6db14395d82e54338fe7b8f9 Size (icon.v941src.tgz) = 3249869 bytes SHA1 (patch-aa) = 280f3e3b2057f6be3b118f90925cfc32f18cc885 SHA1 (patch-ab) = 9450aa8c9c95b6e1abfb3c2e0fdabd6b78fb7725 -SHA1 (patch-ac) = 7df859b2c6502391c7f3d7cd789c9901fdf32d7e -SHA1 (patch-ae) = 2461d8f7adf9738ac6b1a214c551276959bab2a5 -SHA1 (patch-af) = 6b85682ef23f1cfa8ad469e1e08cc3f93429e1b2 -SHA1 (patch-ag) = fdec07d56e7bfff20fb2b952e78bd6b661902fae +SHA1 (patch-ac) = 1ea1d2556238ebf05c6bf669fecf104bdea2e886 +SHA1 (patch-ad) = b28ae8c52bcd94a02998376d6e35fa7c1b649fc2 +SHA1 (patch-ae) = 3745b9544ca72fd0deb016040fc2fcd9bc65cc42 +SHA1 (patch-af) = eb58ff21480e48ac693eb2f0f92bf92db463623f +SHA1 (patch-ag) = ce85beb36248ce7c2d86e7dc6ec5f50c6e379353 SHA1 (patch-ah) = f8289bb2c29ecbe03eb480cc33fe78cd49338ac1 -SHA1 (patch-ai) = f99dfb986411bfc1bb338c5e8da173028e1886a7 +SHA1 (patch-ai) = 8cca8c4847e40728727c25998b1679ba2107a0dd SHA1 (patch-aj) = a2b0bb59984a099635204a41ebca7a086b50424f SHA1 (patch-ak) = cd66608d05ffc9f953bad63781632c6c416b4bc7 SHA1 (patch-al) = 3c2b05206fe404ac3987eaac3d35fb91172b580d SHA1 (patch-am) = fe2a7e2a41d27e1c26fab74235ecc0ed7e6bb80d SHA1 (patch-an) = a123ca718649b61aae145473214eb368f28e9c87 +SHA1 (patch-ao) = a73b70d5ed75dc2293a4ad8dbf2964e1e5916fed +SHA1 (patch-ap) = 9178bcef6d46566dbc300aa2f98a958654c5e3fc +SHA1 (patch-aq) = b844874fca2419d87433424e455d712b90a0c22f SHA1 (patch-as) = baff3d1b011b9e6b1d3bc033f8aa25336ff7afd7 SHA1 (patch-at) = afe068041bc99a287adb88df6d282d7b7ce853bb SHA1 (patch-au) = e86fb1c6b7784bf18963db3dabf81b5cf564bc3e diff --git a/lang/icon/patches/patch-ac b/lang/icon/patches/patch-ac index a160a3e8d75..c1da4763678 100644 --- a/lang/icon/patches/patch-ac +++ b/lang/icon/patches/patch-ac @@ -1,9 +1,10 @@ -$NetBSD: patch-ac,v 1.5 2003/03/24 12:12:10 jtb Exp $ +$NetBSD: patch-ac,v 1.6 2003/04/05 05:42:56 jtb Exp $ ---- /dev/null Mon Mar 24 11:07:29 2003 -+++ config/unix/netbsd/powerpc.s Mon Mar 24 11:40:22 2003 -@@ -0,0 +1,47 @@ -+# Adapted from ppc_macos/rswitch.s +--- /dev/null ++++ config/unix/netbsd/powerpc.s +@@ -0,0 +1,48 @@ ++# ++# coswitch for the PowerPC +# + + .file "rswitch.s" @@ -42,7 +43,7 @@ $NetBSD: patch-ac,v 1.5 2003/03/24 12:12:10 jtb Exp $ + addic %r1, %r1, RSIZE # deallocate stack frame + blr # return into new context + -+first: # First-time call ++first: # First-time call: + lwz %r1, 0(%r4) # SP as figured by Icon + addic %r1, %r1, -64 # save area for callee + addi %r3, 0, 0 # arg1 diff --git a/lang/icon/patches/patch-ad b/lang/icon/patches/patch-ad new file mode 100644 index 00000000000..16898d0ea5b --- /dev/null +++ b/lang/icon/patches/patch-ad @@ -0,0 +1,30 @@ +$NetBSD: patch-ad,v 1.1 2003/04/05 05:42:56 jtb Exp $ + +--- /dev/null ++++ config/unix/netbsd/m68k.c +@@ -0,0 +1,25 @@ ++/* ++ * coswitch for the m68k architecture ++ */ ++ ++int ++coswitch (int *old_cs, int *new_cs, int first) ++{ ++ asm ("movl %a6@(8),%a0"); /* a0 = old */ ++ asm ("movl %a6@(12),%a1"); /* a1 = new */ ++ asm ("movl %a7,%a0@"); /* save sp in cstate[0] */ ++ asm ("movl %a6,%a0@(4)"); /* save a6 (fp) in cstate[0] */ ++ asm ("moveml #0x3cfc,%a0@(8)"); /* store d2-d7, a2-a6 in old->cstate */ ++ ++ if (first == 0) { /* this is first activation */ ++ asm ("movl %a1@,%a7"); ++ asm ("movl #0,%a6"); ++ new_context (0, 0); ++ syserr ("new_context() returned in coswitch"); ++ } ++ else { ++ asm ("movl %a1@,%a7"); /* restore sp */ ++ asm ("movl %a1@(4),%a6"); /* restore fp */ ++ asm ("moveml %a1@(8),#0x3cfc"); /* restore d2-d7, a2-a6 */ ++ } ++} diff --git a/lang/icon/patches/patch-ae b/lang/icon/patches/patch-ae index cb2afe5c2c2..782a6daf09d 100644 --- a/lang/icon/patches/patch-ae +++ b/lang/icon/patches/patch-ae @@ -1,10 +1,10 @@ -$NetBSD: patch-ae,v 1.6 2003/03/24 12:12:10 jtb Exp $ +$NetBSD: patch-ae,v 1.7 2003/04/05 05:42:56 jtb Exp $ ---- /dev/null Sat Jun 23 16:44:46 2001 +--- /dev/null +++ config/unix/netbsd/alpha.s @@ -0,0 +1,46 @@ +/* -+ * coswitch(old_cs, new_cs, first) for Dec Alpha architecture ++ * coswitch(old_cs, new_cs, first) for DEC Alpha architecture + * $16 $17 $18 + */ + .data @@ -40,7 +40,7 @@ $NetBSD: patch-ae,v 1.6 2003/03/24 12:12:10 jtb Exp $ + lda $sp, 72($sp) /* reset sp */ + jsr_coroutine $31, ($26), 0 /* jump into new_context */ + -+first: ++first: + ldq $sp, 0($17) /* load stack pointer only */ + bis $31, $31, $16 /* r16 = 0 */ + bis $31, $31, $17 /* r17 = 0 */ diff --git a/lang/icon/patches/patch-af b/lang/icon/patches/patch-af index 13ca4f762e3..0b9ddb0e253 100644 --- a/lang/icon/patches/patch-af +++ b/lang/icon/patches/patch-af @@ -1,33 +1,28 @@ -$NetBSD: patch-af,v 1.7 2003/03/24 12:12:10 jtb Exp $ +$NetBSD: patch-af,v 1.8 2003/04/05 05:42:56 jtb Exp $ ---- /dev/null Sat Jun 23 16:44:55 2001 +--- /dev/null +++ config/unix/netbsd/i386.c -@@ -0,0 +1,28 @@ +@@ -0,0 +1,23 @@ +/* -+ * This is the co-expression context switch for the Intel 80386 -+ * under Microport Unix System V/386 ++ * coswitch for i386 architecture + */ + -+/* -+ * coswitch -+ */ ++int ++coswitch (int *old_cs, int *new_cs, int first) ++{ ++ asm ("movl 8(%ebp),%eax"); ++ asm ("movl %esp,0(%eax)"); ++ asm ("movl %ebp,4(%eax)"); ++ asm ("movl 12(%ebp),%eax"); + -+coswitch(old_cs, new_cs, first) -+int *old_cs, *new_cs; -+int first; -+ { -+ asm(" movl 8(%ebp),%eax"); -+ asm(" movl %esp,0(%eax)"); -+ asm(" movl %ebp,4(%eax)"); -+ asm(" movl 12(%ebp),%eax"); -+ if (first == 0) { /* this is the first activation */ -+ asm(" movl 0(%eax),%esp"); -+ asm(" movl $0,%ebp"); -+ new_context(0, 0); -+ syserr("interp() returned in coswitch"); -+ } -+ else { -+ asm(" movl 0(%eax),%esp"); -+ asm(" movl 4(%eax),%ebp"); -+ } -+ } ++ if (first == 0) { /* this is the first activation */ ++ asm ("movl 0(%eax),%esp"); ++ asm ("movl $0,%ebp"); ++ new_context (0, 0); ++ syserr ("interp() returned in coswitch"); ++ } ++ else { ++ asm ("movl 0(%eax),%esp"); ++ asm ("movl 4(%eax),%ebp"); ++ } ++} diff --git a/lang/icon/patches/patch-ag b/lang/icon/patches/patch-ag index 5ee25bacf69..a1a3b20c7b0 100644 --- a/lang/icon/patches/patch-ag +++ b/lang/icon/patches/patch-ag @@ -1,20 +1,14 @@ -$NetBSD: patch-ag,v 1.5 2003/03/24 12:12:10 jtb Exp $ +$NetBSD: patch-ag,v 1.6 2003/04/05 05:42:56 jtb Exp $ ---- /dev/null Sat Jun 23 16:45:07 2001 +--- /dev/null +++ config/unix/netbsd/sparc.c -@@ -0,0 +1,39 @@ +@@ -0,0 +1,33 @@ +/* -+ * coswitch for Sun-4 Sparc. -+ * -+ * Compile this with 'cc -c rswitch.c'. Do not use cc -O. ++ * coswitch for NetBSD SPARC + */ + -+/* #include <sys/asm_linkage.h> */ -+/*#include <sys/trap.h>*/ -+ -+int coswitch(old_cs, new_cs, first) -+int *old_cs, *new_cs; -+int first; ++int ++coswitch (int *old_cs, int *new_cs, int first) +{ + asm("ta 0x03"); /* ST_FLUSH_WINDOWS in trap.h */ + asm("ld [%fp+0x44], %o0"); /* load old_cs into %o0 */ @@ -27,8 +21,8 @@ $NetBSD: patch-ag,v 1.5 2003/03/24 12:12:10 jtb Exp $ + asm("ld [%o0], %o1"); /* load %o1 from cstate[0] */ + + /* Decrement new stack pointer value before loading it into sp. */ -+ /* The top 64 bytes of the stack are reserved for the kernel, to */ -+ /* save the 8 local and 8 in registers into, on context switches, */ ++ /* The top 64 bytes of the stack are reserved for the kernel, to */ ++ /* save the 8 local and 8 in registers into, on context switches, */ + /* interrupts, traps, etc. */ + + asm("save %o1,-96, %sp"); /* load %sp from %o1 */ diff --git a/lang/icon/patches/patch-ai b/lang/icon/patches/patch-ai index b762ae4a3e2..3b5d1531d79 100644 --- a/lang/icon/patches/patch-ai +++ b/lang/icon/patches/patch-ai @@ -1,22 +1,18 @@ -$NetBSD: patch-ai,v 1.4 2003/03/24 12:12:10 jtb Exp $ +$NetBSD: patch-ai,v 1.5 2003/04/05 05:42:56 jtb Exp $ ---- /dev/null Mon Mar 24 09:43:29 2003 -+++ config/unix/netbsd/status Mon Mar 24 10:13:52 2003 -@@ -0,0 +1,30 @@ +--- /dev/null ++++ config/unix/netbsd/status +@@ -0,0 +1,26 @@ +System configuration: + -+ NetBSD ++ NetBSD SPARC, Alpha, PowerPC, i386, MIPS, VAX, m68k + +Latest Icon version: + + Version 9.4.1 + +Installer: -+ Alistair G. Crooks <agc@netbsd.org> (Intel) -+ John Hayward <John.C.Hayward@wheaton.edu> (Intel) -+ David A. Holland <dholland@eecs.harvard.edu> (SPARC) -+ Tim Rightnour <root@garbled.net> (Alpha) -+ Jason Beegan <jtb@netbsd.org> (PowerPC) ++ The NetBSD Project + +Missing features: + diff --git a/lang/icon/patches/patch-ao b/lang/icon/patches/patch-ao new file mode 100644 index 00000000000..992079e32ab --- /dev/null +++ b/lang/icon/patches/patch-ao @@ -0,0 +1,81 @@ +$NetBSD: patch-ao,v 1.5 2003/04/05 05:42:56 jtb Exp $ + +--- /dev/null ++++ config/unix/netbsd/mipseb.s +@@ -0,0 +1,76 @@ ++ .data ++ .align 0 ++$$8: ++ .ascii "new_context() returned in coswitch\X00" ++ .text ++ .align 2 ++ .globl coswitch ++ # coswitch(old_cs,new_cs,first) ++ # int *old_cs,*new_cs; ++ # int first; ++ # { ++ .ent coswitch ++coswitch: ++ # standard entry code, including decrement of sp ++ subu $sp, 32 ++ sw $31, 20($sp) ++ .mask 0x80000000, -4 ++ .frame $sp, 32, $31 ++ # save (decremented) sp and other registers in old_cs ++ sw $sp, 0($4) ++ sw $31, 4($4) ++ sd $16, 8($4) ++ sd $18, 16($4) ++ sd $20, 24($4) ++ sd $22, 32($4) ++ s.d $f20,40($4) ++ s.d $f22,48($4) ++ s.d $f24,56($4) ++ s.d $f26,64($4) ++ s.d $f28,72($4) ++ s.d $f30,80($4) ++ sw $gp,88($4) ++ sw $fp,96($4) ++ # if first = 0, this is first activation ++ bne $6, 0, $33 ++ # load sp from new_cs[0] (ignore other registers) ++ lw $sp, 0($5) ++ # Decrement sp by the size of the stackframe. ++ # Store decremented sp in new_cs. Then call new_context(). ++ subu $sp, 32 ++ sw $sp, 0($5) ++ # new_context(0,0); ++ move $4, $0 ++ move $5, $0 ++ jal new_context ++ # syserr("new_context() returned in coswitch"); ++ la $4, $$8 ++ jal syserr ++ # if we're in control now, something is really wrong, so go into ++ # a tight loop until someone notices... ++$32: ++ b $32 ++$33: ++ # here for not first activation ++ # load sp and other registers from new_cs ++ lw $sp, 0($5) ++ lw $31, 4($5) ++ # (could compare $31 with 20($sp) as a consistency check now) ++ ld $16, 8($5) ++ ld $18, 16($5) ++ ld $20, 24($5) ++ ld $22, 32($5) ++ l.d $f20,40($5) ++ l.d $f22,48($5) ++ l.d $f24,56($5) ++ l.d $f26,64($5) ++ l.d $f28,72($5) ++ l.d $f30,80($5) ++ lw $gp,88($5) ++ lw $fp,96($5) ++ # increment sp as for normal return ++ addu $sp, 32 ++ # return ++ j $31 ++ # } ++ .end coswitch diff --git a/lang/icon/patches/patch-ap b/lang/icon/patches/patch-ap new file mode 100644 index 00000000000..01c52d96f83 --- /dev/null +++ b/lang/icon/patches/patch-ap @@ -0,0 +1,81 @@ +$NetBSD: patch-ap,v 1.6 2003/04/05 05:42:57 jtb Exp $ + +--- /dev/null ++++ config/unix/netbsd/mipsel.s +@@ -0,0 +1,76 @@ ++ .data ++ .align 0 ++$$8: ++ .ascii "new_context() returned in coswitch\X00" ++ .text ++ .align 2 ++ .globl coswitch ++ # coswitch(old_cs,new_cs,first) ++ # int *old_cs,*new_cs; ++ # int first; ++ # { ++ .ent coswitch ++coswitch: ++ # standard entry code, including decrement of sp ++ subu $sp, 32 ++ sw $31, 20($sp) ++ .mask 0x80000000, -4 ++ .frame $sp, 32, $31 ++ # save (decremented) sp and other registers in old_cs ++ sw $sp, 0($4) ++ sw $31, 4($4) ++ sd $16, 8($4) ++ sd $18, 16($4) ++ sd $20, 24($4) ++ sd $22, 32($4) ++ s.d $f20,40($4) ++ s.d $f22,48($4) ++ s.d $f24,56($4) ++ s.d $f26,64($4) ++ s.d $f28,72($4) ++ s.d $f30,80($4) ++ sw $gp,88($4) ++ sw $fp,96($4) ++ # if first = 0, this is first activation ++ bne $6, 0, $33 ++ # load sp from new_cs[0] (ignore other registers) ++ lw $sp, 0($5) ++ # Decrement sp by the size of the stackframe. ++ # Store decremented sp in new_cs. Then call new_context(). ++ subu $sp, 32 ++ sw $sp, 0($5) ++ # new_context(0,0); ++ move $4, $0 ++ move $5, $0 ++ jal new_context ++ # syserr("new_context() returned in coswitch"); ++ la $4, $$8 ++ jal syserr ++ # if we're in control now, something is really wrong, so go into ++ # a tight loop until someone notices... ++$32: ++ b $32 ++$33: ++ # here for not first activation ++ # load sp and other registers from new_cs ++ lw $sp, 0($5) ++ lw $31, 4($5) ++ # (could compare $31 with 20($sp) as a consistency check now) ++ ld $16, 8($5) ++ ld $18, 16($5) ++ ld $20, 24($5) ++ ld $22, 32($5) ++ l.d $f20,40($5) ++ l.d $f22,48($5) ++ l.d $f24,56($5) ++ l.d $f26,64($5) ++ l.d $f28,72($5) ++ l.d $f30,80($5) ++ lw $gp,88($5) ++ lw $fp,96($5) ++ # increment sp as for normal return ++ addu $sp, 32 ++ # return ++ j $31 ++ # } ++ .end coswitch diff --git a/lang/icon/patches/patch-aq b/lang/icon/patches/patch-aq new file mode 100644 index 00000000000..0680b79ba65 --- /dev/null +++ b/lang/icon/patches/patch-aq @@ -0,0 +1,43 @@ +$NetBSD: patch-aq,v 1.5 2003/04/05 05:42:57 jtb Exp $ + +--- /dev/null ++++ config/unix/netbsd/vax.c +@@ -0,0 +1,38 @@ ++/* ++ * coswitch for the VAX architecture. ++ */ ++ ++int ++coswitch (int *old_cs, int *new_cs, int first) ++{ ++ asm ("movl 4(%ap),%r0"); ++ asm ("movl 8(%ap),%r1"); ++ asm ("movl %sp,0(%r0)"); ++ asm ("movl %fp,4(%r0)"); ++ asm ("movl %ap,8(%r0)"); ++ asm ("movl %r11,16(%r0)"); ++ asm ("movl %r10,20(%r0)"); ++ asm ("movl %r9,24(%r0)"); ++ asm ("movl %r8,28(%r0)"); ++ asm ("movl %r7,32(%r0)"); ++ asm ("movl %r6,36(%r0)"); ++ ++ if (first == 0) { /* this is the first activation */ ++ asm ("movl 0(%r1),%sp"); ++ asm ("clrl %fp"); ++ asm ("clrl %ap"); ++ interp (0,0); ++ syserr ("interp() returned in coswitch"); ++ } ++ else { ++ asm ("movl 0(%r1),%sp"); ++ asm ("movl 4(%r1),%fp"); ++ asm ("movl 8(%r1),%ap"); ++ asm ("movl 16(%r1),%r11"); ++ asm ("movl 20(%r1),%r10"); ++ asm ("movl 24(%r1),%r9"); ++ asm ("movl 28(%r1),%r8"); ++ asm ("movl 32(%r1),%r7"); ++ asm ("movl 36(%r1),%r6"); ++ } ++} |