summaryrefslogtreecommitdiff
path: root/lang/icon
diff options
context:
space:
mode:
authorjtb <jtb@pkgsrc.org>2003-04-05 05:42:55 +0000
committerjtb <jtb@pkgsrc.org>2003-04-05 05:42:55 +0000
commit3bfb632e9acfc0b49d16e01f4d93b589453bfae4 (patch)
tree51dcfc21f67a71992218e41667edca2931166a73 /lang/icon
parent6cabf3c80fa098177a1cb6337e3f509521ac0e14 (diff)
downloadpkgsrc-3bfb632e9acfc0b49d16e01f4d93b589453bfae4.tar.gz
Add support for m68k, VAX, and MIPS based architectures.
Diffstat (limited to 'lang/icon')
-rw-r--r--lang/icon/Makefile7
-rw-r--r--lang/icon/distinfo16
-rw-r--r--lang/icon/patches/patch-ac13
-rw-r--r--lang/icon/patches/patch-ad30
-rw-r--r--lang/icon/patches/patch-ae8
-rw-r--r--lang/icon/patches/patch-af49
-rw-r--r--lang/icon/patches/patch-ag22
-rw-r--r--lang/icon/patches/patch-ai16
-rw-r--r--lang/icon/patches/patch-ao81
-rw-r--r--lang/icon/patches/patch-ap81
-rw-r--r--lang/icon/patches/patch-aq43
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");
++ }
++}