summaryrefslogtreecommitdiff
path: root/lang/clisp/patches/patch-ag
diff options
context:
space:
mode:
authorjmc <jmc>2002-03-14 07:44:21 +0000
committerjmc <jmc>2002-03-14 07:44:21 +0000
commitb8cf86660f5d0c315d5a5f3793566c4d1a683d03 (patch)
tree63e057b891075c39a48955327a50faa07c936427 /lang/clisp/patches/patch-ag
parentfaaae470443c4cfe1edc70e3987be929cfa54624 (diff)
downloadpkgsrc-b8cf86660f5d0c315d5a5f3793566c4d1a683d03.tar.gz
Port to powerpc:
Provide a trampoline implementation that doesn't presume r11 is free (it's not in dynamically linked programs and the ELF ABI says as much but somehow linux managed to avoid this it seems). Use r13 for the time being since while gcc will allocate it, it's the last "local" one allocated so none of the clisp code hits that (nothing needed 17+ local registers in use ever). Update the vacall implementation to match the trampoline calls but otherwise for any assembly use the linux code. Make these changes specific to netbsd, update the test cases so everything works. This now passes all the clisp tests when done/installed.
Diffstat (limited to 'lang/clisp/patches/patch-ag')
-rw-r--r--lang/clisp/patches/patch-ag16
1 files changed, 16 insertions, 0 deletions
diff --git a/lang/clisp/patches/patch-ag b/lang/clisp/patches/patch-ag
new file mode 100644
index 00000000000..788019f9d13
--- /dev/null
+++ b/lang/clisp/patches/patch-ag
@@ -0,0 +1,16 @@
+$NetBSD: patch-ag,v 1.1 2002/03/14 07:44:23 jmc Exp $
+
+--- ../ffcall/callback/trampoline_r/test1.c.orig Thu Mar 14 07:22:04 2002
++++ ../ffcall/callback/trampoline_r/test1.c Thu Mar 14 07:22:07 2002
+@@ -69,7 +69,11 @@
+ register void* env __asm__("r12");
+ #endif
+ #ifdef __rs6000__
++#ifdef __NetBSD__
++register void* env __asm__("r13");
++#else
+ register void* env __asm__("r11");
++#endif
+ #endif
+ #ifdef __m88k__
+ register void* env __asm__("r11");