a14b596750
XULRunner is a runtime environment for applications using the XML User Interface Language, XUL. It is the successor of the "Gecko" runtime environment.
77 lines
2.5 KiB
Text
77 lines
2.5 KiB
Text
$NetBSD: patch-xe,v 1.1.1.1 2009/08/05 02:59:48 tnn Exp $
|
|
|
|
NetBSD/m68k xptcall support code. From pkgsrc/www/firefox/patch-ad.
|
|
|
|
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp.orig 2009-06-29 18:15:33.000000000 +0200
|
|
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp
|
|
@@ -132,6 +132,15 @@ extern "C" {
|
|
}
|
|
}
|
|
|
|
+/*
|
|
+ * SYMBOL PREFIX must be "_" for aout symbols and "" for ELF
|
|
+ */
|
|
+#ifndef __ELF__
|
|
+#define SYMBOLPREFIX "_"
|
|
+#else
|
|
+#define SYMBOLPREFIX
|
|
+#endif
|
|
+
|
|
XPTC_PUBLIC_API(nsresult)
|
|
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
|
|
PRUint32 paramCount, nsXPTCVariant* params)
|
|
@@ -139,30 +148,30 @@ XPTC_InvokeByIndex(nsISupports* that, PR
|
|
PRUint32 result;
|
|
|
|
__asm__ __volatile__(
|
|
- "movl %4, sp@-\n\t"
|
|
- "movl %3, sp@-\n\t"
|
|
- "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"
|
|
- "movl %3, sp@-\n\t"
|
|
- "movl a0, sp@-\n\t"
|
|
- "jbsr _invoke_copy_to_stack\n\t" /* copy params */
|
|
- "addl #12, sp\n\t"
|
|
- "movl %1, a0\n\t"
|
|
- "movl a0@, a1\n\t"
|
|
- "movl %2, d0\n\t" /* function index */
|
|
- "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"
|
|
+ "movl %4, %%sp@-\n\t"
|
|
+ "movl %3, %%sp@-\n\t"
|
|
+ "jbsr "SYMBOLPREFIX"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"
|
|
+ "movl %3, %%sp@-\n\t"
|
|
+ "movl %%a0, %%sp@-\n\t"
|
|
+ "jbsr "SYMBOLPREFIX"invoke_copy_to_stack\n\t" /* copy params */
|
|
+ "addl #12, %%sp\n\t"
|
|
+ "movl %1, %%a0\n\t"
|
|
+ "movl %%a0@, %%a1\n\t"
|
|
+ "movl %2, %%d0\n\t" /* function index */
|
|
+ "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 */
|