]> git.pld-linux.org Git - packages/firefox.git/blob - mozilla-firefox-alpha-gcc3.patch
- ripped hackery from gentoo of removing outdated compreg/chrome/xul cache in case...
[packages/firefox.git] / mozilla-firefox-alpha-gcc3.patch
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.043326 seconds and 3 git commands to generate.