diff options
Diffstat (limited to 'net-www/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch')
-rw-r--r-- | net-www/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/net-www/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch b/net-www/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch new file mode 100644 index 000000000000..3aa192be9246 --- /dev/null +++ b/net-www/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch @@ -0,0 +1,121 @@ +diff -Naur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2001-09-28 15:12:51.000000000 -0500 ++++ mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2003-03-18 09:50:06.000000000 -0600 +@@ -20,6 +20,7 @@ + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): ++ * Glen Nakamura <glen@imodulo.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -37,8 +38,6 @@ + + /* Platform specific code to invoke XPCOM methods on native objects */ + +-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ +- + #include "xptcprivate.h" + + /* Prototype specifies unmangled function name and disables unused warning */ +@@ -163,7 +162,11 @@ + "bis $16,$16,$1\n\t" /* load "this" */ + "ldq $2,16($15)\n\t" /* load "methodIndex" */ + "ldq $1,0($1)\n\t" /* load vtable */ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++ "s8addq $2,$31,$2\n\t" /* vtable index = "methodIndex" * 8 */ ++#else /* not G++ V3 ABI */ + "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */ ++#endif /* G++ V3 ABI */ + "addq $1,$2,$1\n\t" + "ldq $27,0($1)\n\t" /* load address of function */ + "jsr $26,($27),0\n\t" /* call virtual function */ +@@ -176,4 +179,3 @@ + "ret $31,($26),1\n\t" + ".end XPTC_InvokeByIndex" + ); +- +diff -Naur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2001-09-28 15:12:52.000000000 -0500 ++++ mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2003-03-18 09:50:06.000000000 -0600 +@@ -20,6 +20,7 @@ + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): ++ * Glen Nakamura <glen@imodulo.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -37,8 +38,6 @@ + + /* Implement shared vtbl methods. */ + +-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ +- + #include "xptcprivate.h" + + /* Prototype specifies unmangled function name and disables unused warning */ +@@ -188,23 +187,45 @@ + * nsresult nsXPTCStubBase::Stub##n() + * Sets register $1 to "methodIndex" and jumps to SharedStub. + */ ++#define STUB_MANGLED_ENTRY(n, symbol) \ ++ "#### Stub"#n" ####" "\n\t" \ ++ ".text" "\n\t" \ ++ ".align 5" "\n\t" \ ++ ".globl " symbol "\n\t" \ ++ ".ent " symbol "\n" \ ++symbol ":" "\n\t" \ ++ ".frame $30,0,$26,0" "\n\t" \ ++ "ldgp $29,0($27)" "\n" \ ++"$" symbol "..ng:" "\n\t" \ ++ ".prologue 1" "\n\t" \ ++ "lda $1,"#n "\n\t" \ ++ "br $31,$SharedStub..ng" "\n\t" \ ++ ".end " symbol ++ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++ ++#define STUB_ENTRY(n) \ ++__asm__( \ ++ ".if "#n" < 10" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase5Stub"#n"Ev") "\n\t" \ ++ ".elseif "#n" < 100" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase6Stub"#n"Ev") "\n\t" \ ++ ".elseif "#n" < 1000" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase7Stub"#n"Ev") "\n\t" \ ++ ".else" "\n\t" \ ++ ".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \ ++ ".endif" \ ++ ); ++ ++#else /* not G++ V3 ABI */ ++ + #define STUB_ENTRY(n) \ + __asm__( \ +- "#### Stub"#n" ####\n" \ +-".text\n\t" \ +- ".align 5\n\t" \ +- ".globl Stub"#n"__14nsXPTCStubBase\n\t" \ +- ".ent Stub"#n"__14nsXPTCStubBase\n" \ +-"Stub"#n"__14nsXPTCStubBase:\n\t" \ +- ".frame $30,0,$26,0\n\t" \ +- "ldgp $29,0($27)\n" \ +-"$Stub"#n"__14nsXPTCStubBase..ng:\n\t" \ +- ".prologue 1\n\t" \ +- "lda $1,"#n"\n\t" \ +- "br $31,$SharedStub..ng\n\t" \ +- ".end Stub"#n"__14nsXPTCStubBase" \ ++ STUB_MANGLED_ENTRY(n, "Stub"#n"__14nsXPTCStubBase") \ + ); + ++#endif /* G++ V3 ABI */ ++ + #define SENTINEL_ENTRY(n) \ + nsresult nsXPTCStubBase::Sentinel##n() \ + { \ +@@ -213,4 +234,3 @@ + } + + #include "xptcstubsdef.inc" +- |