diff options
author | jmc <jmc> | 2002-03-14 07:44:21 +0000 |
---|---|---|
committer | jmc <jmc> | 2002-03-14 07:44:21 +0000 |
commit | b8cf86660f5d0c315d5a5f3793566c4d1a683d03 (patch) | |
tree | 63e057b891075c39a48955327a50faa07c936427 /lang/clisp/patches/patch-ag | |
parent | faaae470443c4cfe1edc70e3987be929cfa54624 (diff) | |
download | pkgsrc-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-ag | 16 |
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"); |