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
4 * nsresult nsXPTCStubBase::Stub##n()
5 * Sets register $1 to "methodIndex" and jumps to SharedStub.
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) \
11 + "#### Stub"#n" ####\n" \
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" \
27 + ".err \"stub number " #n " >= 1000 not yet supported\"\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" \
36 +"$_ZN14nsXPTCStubBase7Stub" #n "Ev..ng:\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" \
47 + "br $31,$SharedStub..ng\n\t" \
48 + ".end _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
51 #define STUB_ENTRY(n) \
53 "#### Stub"#n" ####\n" \
55 "br $31,$SharedStub..ng\n\t" \
56 ".end Stub"#n"__14nsXPTCStubBase" \
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
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"
71 "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
74 "ldq $27,0($1)\n\t" /* load address of function */
75 "jsr $26,($27),0\n\t" /* call virtual function */