summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authormycroft <mycroft@pkgsrc.org>2000-10-31 18:08:26 +0000
committermycroft <mycroft@pkgsrc.org>2000-10-31 18:08:26 +0000
commite0266b96dbea6d20313140a80788a37cabab93b5 (patch)
tree637f7adbdcbe5aa4faa3c8651bce5f0440515781 /www
parentb79e9a08d38f2b25bec1a5bc93b3747307199b44 (diff)
downloadpkgsrc-e0266b96dbea6d20313140a80788a37cabab93b5.tar.gz
Fix obvious bugs in the m68k XPTC stubs.
Diffstat (limited to 'www')
-rw-r--r--www/mozilla/files/patch-sum3
-rw-r--r--www/mozilla/patches/patch-aj79
2 files changed, 81 insertions, 1 deletions
diff --git a/www/mozilla/files/patch-sum b/www/mozilla/files/patch-sum
index ad2dae9c5ee..9566e5938a3 100644
--- a/www/mozilla/files/patch-sum
+++ b/www/mozilla/files/patch-sum
@@ -1,4 +1,4 @@
-$NetBSD: patch-sum,v 1.27 2000/10/31 16:11:40 mycroft Exp $
+$NetBSD: patch-sum,v 1.28 2000/10/31 18:08:26 mycroft Exp $
MD5 (patch-aa) = a07a4956a8c6a91fce0ef653b59c902f
MD5 (patch-ab) = dfa8ac0ffaac96293904adb6372c5b8d
@@ -9,3 +9,4 @@ MD5 (patch-af) = 316103ca86d2a079d940cff8102849f1
MD5 (patch-ag) = 6550d516cf5395f38bd11fc3845f8a8d
MD5 (patch-ah) = 8f6975c0fb5454958416f2b87d789c99
MD5 (patch-ai) = ebd71ac01fc02d0fa639af6348d1926e
+MD5 (patch-aj) = dae5f7b6f80a833fd63721c5c751fe0b
diff --git a/www/mozilla/patches/patch-aj b/www/mozilla/patches/patch-aj
new file mode 100644
index 00000000000..6ff83178a8d
--- /dev/null
+++ b/www/mozilla/patches/patch-aj
@@ -0,0 +1,79 @@
+$NetBSD: patch-aj,v 1.6 2000/10/31 18:08:27 mycroft Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp.orig Sat Nov 6 03:39:07 1999
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp Tue Oct 31 17:33:58 2000
+@@ -129,6 +129,7 @@
+ "jbsr _invoke_count_words\n\t" /* count words */
+ "addql #8, sp\n\t"
+ "lsll #2, d0\n\t" /* *= 4 */
++ "movl sp, a2\n\t" /* save original sp */
+ "subl d0, sp\n\t" /* make room for params */
+ "movl sp, a0\n\t"
+ "movl %4, sp@-\n\t"
+@@ -137,18 +138,22 @@
+ "jbsr _invoke_copy_to_stack\n\t" /* copy params */
+ "addl #12, sp\n\t"
+ "movl %1, a0\n\t"
+- "movl a0, sp@-\n\t"
+- "movl a0@, a0\n\t"
++ "movl a0@, a1\n\t"
+ "movl %2, d0\n\t" /* function index */
+- "movl a0@(12,d0:l:8), a0\n\t"
+- "jbsr a0@\n\t" /* safe to not cleanup sp */
+- "movl d0, %0"
++ "movl a0, d1\n\t"
++ "movw a1@(8,d0:l:8), a0\n\t"
++ "addl a0, d1\n\t"
++ "movl a1@(12,d0:l:8), a1\n\t"
++ "movl d1, sp@-\n\t"
++ "jbsr a1@\n\t"
++ "movl a2, sp\n\t" /* restore original sp */
++ "movl d0, %0\n\t"
+ : "=g" (result) /* %0 */
+ : "g" (that), /* %1 */
+ "g" (methodIndex), /* %2 */
+ "g" (paramCount), /* %3 */
+ "g" (params) /* %4 */
+- : "a0", "a1", "d0", "d1", "memory"
++ : "a0", "a1", "a2", "d0", "d1", "memory"
+ );
+
+ return result;
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp.orig Sat Nov 6 03:39:10 1999
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp Tue Oct 31 17:45:51 2000
+@@ -108,22 +108,19 @@
+ }
+ }
+
+-#define STUB_ENTRY(n) \
+-nsresult nsXPTCStubBase::Stub##n() \
+-{ \
+- register nsresult result; \
+- __asm__ __volatile__( \
+- "lea a6@(12), a0\n\t" /* args */ \
+- "movl a0, sp@-\n\t" \
+- "movl #"#n", sp@-\n\t" /* method index */ \
+- "movl a6@(8), sp@-\n\t" /* this */ \
+- "jbsr _PrepareAndDispatch\n\t" \
+- "movl d0, %0" \
+- : "=d" (result) /* %0 */ \
+- : \
+- : "a0", "a1", "d0", "d1", "memory" ); \
+- return result; \
+-}
++#define STUB_ENTRY(n) \
++__asm__( \
++ ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
++"_Stub"#n"__14nsXPTCStubBase:\n\t" \
++ "link a6,#0 \n\t" \
++ "lea a6@(12), a0 \n\t" /* pointer to args */ \
++ "movl a0, sp@- \n\t" \
++ "movl #"#n", sp@- \n\t" /* method index */ \
++ "movl a6@(8), sp@- \n\t" /* this */ \
++ "jbsr _PrepareAndDispatch \n\t" \
++ "unlk a6 \n\t" \
++ "rts \n\t" \
++);
+
+ #define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \