]> git.pld-linux.org Git - packages/firefox.git/blame - mozilla-firefox-alpha-gcc3.patch
- initial, NFY
[packages/firefox.git] / mozilla-firefox-alpha-gcc3.patch
CommitLineData
09a78c3a 1--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp.orig Fri Sep 28 22:12:52 2001
2+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp Tue Jun 24 15:32:39 2003
3@@ -188,6 +188,50 @@
4 * nsresult nsXPTCStubBase::Stub##n()
5 * Sets register $1 to "methodIndex" and jumps to SharedStub.
6 */
7+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
8+// gcc3 mangling tends to insert the length of the method name
9+#define STUB_ENTRY(n) \
10+__asm__( \
11+ "#### Stub"#n" ####\n" \
12+".text\n\t" \
13+ ".align 5\n\t" \
14+ ".if " #n " < 10\n\t" \
15+ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
16+ ".ent _ZN14nsXPTCStubBase5Stub" #n "Ev\n" \
17+"_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \
18+ ".elseif " #n " < 100\n\t" \
19+ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
20+ ".ent _ZN14nsXPTCStubBase6Stub" #n "Ev\n" \
21+"_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \
22+ ".elseif " #n " < 1000\n\t" \
23+ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
24+ ".ent _ZN14nsXPTCStubBase7Stub" #n "Ev\n" \
25+"_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \
26+ ".else\n\t" \
27+ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \
28+ ".endif\n\t" \
29+ ".frame $30,0,$26,0\n\t" \
30+ "ldgp $29,0($27)\n" \
31+ ".if " #n " < 10\n\t" \
32+"$_ZN14nsXPTCStubBase5Stub" #n "Ev..ng:\n\t" \
33+ ".elseif " #n " < 100\n\t" \
34+"$_ZN14nsXPTCStubBase6Stub" #n "Ev..ng:\n\t" \
35+ ".else\n\t" \
36+"$_ZN14nsXPTCStubBase7Stub" #n "Ev..ng:\n\t" \
37+ ".endif\n\t" \
38+ ".prologue 1\n\t" \
39+ "lda $1,"#n"\n\t" \
40+ ".if " #n " < 10\n\t" \
41+ "br $31,$SharedStub..ng\n\t" \
42+ ".end _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
43+ ".elseif " #n " < 100\n\t" \
44+ "br $31,$SharedStub..ng\n\t" \
45+ ".end _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
46+ ".else\n\t" \
47+ "br $31,$SharedStub..ng\n\t" \
48+ ".end _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
49+ ".endif");
50+#else
51 #define STUB_ENTRY(n) \
52 __asm__( \
53 "#### Stub"#n" ####\n" \
54@@ -204,6 +248,7 @@
55 "br $31,$SharedStub..ng\n\t" \
56 ".end Stub"#n"__14nsXPTCStubBase" \
57 );
58+#endif
59
60 #define SENTINEL_ENTRY(n) \
61 nsresult nsXPTCStubBase::Sentinel##n() \
62--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp.orig Fri Sep 28 22:12:51 2001
63+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp Wed Jun 25 14:08:20 2003
64@@ -163,7 +163,11 @@
65 "bis $16,$16,$1\n\t" /* load "this" */
66 "ldq $2,16($15)\n\t" /* load "methodIndex" */
67 "ldq $1,0($1)\n\t" /* load vtable */
68+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
69+ "s8addq $2,0,$2\n\t"
70+#else
71 "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
72+#endif
73 "addq $1,$2,$1\n\t"
74 "ldq $27,0($1)\n\t" /* load address of function */
75 "jsr $26,($27),0\n\t" /* call virtual function */
This page took 0.029577 seconds and 4 git commands to generate.