1 $NetBSD: patch-bx,v 1.1.1.1 2008/06/28 10:01:07 tnn Exp $
3 diff -ruN ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp
4 --- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp 2004-04-18 23:18:18.000000000 +0900
5 +++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp 2005-12-04 19:34:41.000000000 +0900
7 if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack
8 dp->val.d = *(double*) ap;
10 +#if __GXX_ABI_VERSION < 100
19 dp->val.f = *(float*) ap;
21 +#if __GXX_ABI_VERSION < 100
29 // however, it's quick, dirty, and'll break when the ABI changes on
30 // us, which is what we want ;-).
32 -#define STUB_ENTRY(n) \
33 +#if __GXX_ABI_VERSION < 100
35 +# define STUB_ENTRY(n) \
37 ".section \".text\" \n\t" \
41 "b SharedStub@local \n" \
46 +// As G++3 ABI contains the length of the functionname in the mangled
47 +// name, it is difficult to get a generic assembler mechanism like
48 +// in the G++ 2.95 case.
49 +// Create names would be like:
50 +// _ZN14nsXPTCStubBase5Stub1Ev
51 +// _ZN14nsXPTCStubBase6Stub12Ev
52 +// _ZN14nsXPTCStubBase7Stub123Ev
53 +// _ZN14nsXPTCStubBase8Stub1234Ev
55 +// Use assembler directives to get the names right...
57 +# define STUB_ENTRY(n) \
60 + ".if "#n" < 10 \n\t" \
61 + ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
62 + ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
63 +"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
65 + ".elseif "#n" < 100 \n\t" \
66 + ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
67 + ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
68 +"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
70 + ".elseif "#n" < 1000 \n\t" \
71 + ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
72 + ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
73 +"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
76 + ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
80 + "b SharedStub@local \n" \
84 #define SENTINEL_ENTRY(n) \
85 nsresult nsXPTCStubBase::Sentinel##n() \