diff options
author | jtb <jtb> | 2003-06-23 20:48:22 +0000 |
---|---|---|
committer | jtb <jtb> | 2003-06-23 20:48:22 +0000 |
commit | fff5c76a5d9133e9e65b0cef6be28869b5dd1f3d (patch) | |
tree | 2b095bb64ced949e7a8f53aa6f7aa05925dec774 /lang | |
parent | 72796984a683251af07e0bf5948443ea6a4b5e2c (diff) | |
download | pkgsrc-fff5c76a5d9133e9e65b0cef6be28869b5dd1f3d.tar.gz |
* vax.c : interp() is now new_context()
* powerpc.s : conform to SVR4 ABI.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/icon/distinfo | 6 | ||||
-rw-r--r-- | lang/icon/patches/patch-ac | 54 | ||||
-rw-r--r-- | lang/icon/patches/patch-aq | 6 |
3 files changed, 32 insertions, 34 deletions
diff --git a/lang/icon/distinfo b/lang/icon/distinfo index 436dd8a862b..4ec077647b2 100644 --- a/lang/icon/distinfo +++ b/lang/icon/distinfo @@ -1,10 +1,10 @@ -$NetBSD: distinfo,v 1.8 2003/06/06 08:58:42 jtb Exp $ +$NetBSD: distinfo,v 1.9 2003/06/23 20:48:22 jtb Exp $ SHA1 (icon.v942src.tgz) = 9536e9346188deb2dc5853e03b5f7a85991314b1 Size (icon.v942src.tgz) = 3204076 bytes SHA1 (patch-aa) = 4466461cf703d3506d505bd12e5627ebbc581f9c SHA1 (patch-ab) = 751e605b803e2e046cf71375d512c69792b3bdb9 -SHA1 (patch-ac) = 601093ab1ea2970eca82f59d42212643a2753cae +SHA1 (patch-ac) = 987ef61845d8bd5c657b8ef702b7b98e38847477 SHA1 (patch-ad) = 20f718bcaed88e210d9c4e5d5b652043dff04f00 SHA1 (patch-ae) = 6e83f7f256e096cb0ac879cc03766c12f05ebf97 SHA1 (patch-af) = 43b713a8ccabbbbd9d0042225c53711d7ed6db7f @@ -18,7 +18,7 @@ SHA1 (patch-am) = fe2a7e2a41d27e1c26fab74235ecc0ed7e6bb80d SHA1 (patch-an) = 487bd5d35d94026ac2ef7ce08e197a2d378b73e7 SHA1 (patch-ao) = 1473a8f2f60cd571585cb901ac62b77bcf0cdfcf SHA1 (patch-ap) = 8a2db8e1e4af55be36956e8c66c2e5f426bc3c49 -SHA1 (patch-aq) = cf84a0549686eae51363d1619ce5bbf993e4ef3f +SHA1 (patch-aq) = cee577fb4e572d9d54184a9bc5ff8e5e09758958 SHA1 (patch-as) = e8749720bce4362c708c266a0f049f49742eddd2 SHA1 (patch-at) = 7588ea1056dde3f8776c04e4f8786ca56462aedb SHA1 (patch-au) = de4bba2ee4c08ab4e20ec29132b46ed17bd03de4 diff --git a/lang/icon/patches/patch-ac b/lang/icon/patches/patch-ac index fe4fe1abe0e..1213107c26b 100644 --- a/lang/icon/patches/patch-ac +++ b/lang/icon/patches/patch-ac @@ -1,15 +1,18 @@ -$NetBSD: patch-ac,v 1.7 2003/06/06 08:58:42 jtb Exp $ +$NetBSD: patch-ac,v 1.8 2003/06/23 20:48:23 jtb Exp $ --- /dev/null -+++ config/netbsd/powerpc.s -@@ -0,0 +1,48 @@ ++++ /home/jtb/powerpc.s +@@ -0,0 +1,46 @@ +# +# coswitch for the PowerPC +# + + .file "rswitch.s" + -+ .set RSIZE, 80 # room for regs 13-31, rounded up mod16 ++ .set RSIZE, 80 # room for regs 14-31, rounded up mod16 ++ ++ .data ++errmsg: .string "new_context() returned in coswitch\n" + + .text + .align 2 @@ -17,37 +20,32 @@ $NetBSD: patch-ac,v 1.7 2003/06/06 08:58:42 jtb Exp $ + .type coswitch,@function + +coswitch: -+ stwu %r1, -RSIZE(%r1) # allocate stack frame ++ stwu 1, -RSIZE(1) # allocate stack frame + + # Save Old Context: -+ stw %r1, 0(%r3) # SP -+ stw %r2, 4(%r3) # TOC -+ mflr %r0 -+ stw %r0, 8(%r3) # LR (return address) -+ mfcr %r0 -+ stw %r0, 12(%r3) # CR -+ stmw %r13, -RSIZE(%r1) # GPRs 13-31 (save on stack) -+ -+ cmpi 0, %r5, 0 ++ stw 1, 0(3) # SP ++ mflr 0 ++ stw 0, 4(3) # LR (return address) ++ stmw 14, -RSIZE(1) # GPRs 14-31 (save on stack) ++ ++ cmpi 0, 5, 0 + beq first # if first time + + # Restore new context: -+ lwz %r1, 0(%r4) # SP -+ lwz %r2, 4(%r4) # TOC -+ lwz %r0, 8(%r4) # LR -+ mtlr %r0 -+ lwz %r0, 12(%r4) # CR -+ mtcr %r0 -+ lmw %r13, -RSIZE(%r1) # GPRs 13-31 (from stack) -+ -+ addic %r1, %r1, RSIZE # deallocate stack frame ++ lwz 1, 0(4) # SP ++ lwz 0, 4(4) # LR ++ mtlr 0 ++ lmw 14, -RSIZE(1) # GPRs 14-31 (from stack) ++ ++ addic 1, 1, RSIZE # deallocate stack frame + blr # return into new context + +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 -+ addi %r4, 0, 0 # arg2 ++ lwz 1, 0(4) # SP as figured by Icon ++ addic 1, 1, -64 # save area for callee ++ addi 3, 0, 0 # arg1 ++ addi 4, 0, 0 # arg2 + bl new_context # new_context(0,0) -+ addi %r3, 0, 0 ++ lis 3, errmsg@ha ++ la 3, errmsg@l(3) + bl syserr diff --git a/lang/icon/patches/patch-aq b/lang/icon/patches/patch-aq index 998bdd9ba2e..c3f61835726 100644 --- a/lang/icon/patches/patch-aq +++ b/lang/icon/patches/patch-aq @@ -1,4 +1,4 @@ -$NetBSD: patch-aq,v 1.6 2003/06/06 08:58:43 jtb Exp $ +$NetBSD: patch-aq,v 1.7 2003/06/23 20:48:24 jtb Exp $ --- /dev/null +++ config/netbsd/vax.c @@ -26,8 +26,8 @@ $NetBSD: patch-aq,v 1.6 2003/06/06 08:58:43 jtb Exp $ + asm ("movl 0(%r1),%sp"); + asm ("clrl %fp"); + asm ("clrl %ap"); -+ interp (0,0); -+ syserr ("interp() returned in coswitch"); ++ new_context (0,0); ++ syserr ("new_context() returned in coswitch"); + } + else { + asm ("movl 0(%r1),%sp"); |