diff options
author | mycroft <mycroft> | 2000-10-31 18:08:26 +0000 |
---|---|---|
committer | mycroft <mycroft> | 2000-10-31 18:08:26 +0000 |
commit | c6994981340bfcbd6a29c30d00bf9fb3b53c5090 (patch) | |
tree | 637f7adbdcbe5aa4faa3c8651bce5f0440515781 /www/mozilla | |
parent | 14b43e6c83313a581165f434902082ae6eddab2a (diff) | |
download | pkgsrc-c6994981340bfcbd6a29c30d00bf9fb3b53c5090.tar.gz |
Fix obvious bugs in the m68k XPTC stubs.
Diffstat (limited to 'www/mozilla')
-rw-r--r-- | www/mozilla/files/patch-sum | 3 | ||||
-rw-r--r-- | www/mozilla/patches/patch-aj | 79 |
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() \ |