$NetBSD: patch-bw,v 1.2 2004/06/21 14:14:01 taya Exp $ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp --- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2001-09-29 05:12:52.000000000 +0900 +++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2004-05-11 16:29:31.000000000 +0900 @@ -188,6 +188,50 @@ * nsresult nsXPTCStubBase::Stub##n() * Sets register $1 to "methodIndex" and jumps to SharedStub. */ +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ +#define STUB_ENTRY(n) \ +__asm__( \ +"#### Stub"#n" ####\n" \ +".text\n" \ +" .align 5\n" \ +" .if "#n" < 10 \n" \ +" .globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \ +" .ent _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \ +"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n" \ +" .frame $30,0,$26,0\n" \ +" ldgp $29,0($27)\n" \ +"$_ZN14nsXPTCStubBase5Stub"#n"Ev..ng:\n" \ +" .prologue 1\n" \ +" lda $1,"#n"\n" \ +" br $31,$SharedStub..ng\n" \ +" .end _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \ +" .elseif "#n" < 100 \n" \ +" .globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \ +" .ent _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \ +"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n" \ +" .frame $30,0,$26,0\n" \ +" ldgp $29,0($27)\n" \ +"$_ZN14nsXPTCStubBase6Stub"#n"Ev..ng:\n" \ +" .prologue 1\n" \ +" lda $1,"#n"\n" \ +" br $31,$SharedStub..ng\n" \ +" .end _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \ +" .elseif "#n" < 1000 \n" \ +" .globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \ +" .ent _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \ +"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n" \ +" .frame $30,0,$26,0\n" \ +" ldgp $29,0($27)\n" \ +"$_ZN14nsXPTCStubBase7Stub"#n"Ev..ng:\n" \ +" .prologue 1\n" \ +" lda $1,"#n"\n" \ +" br $31,$SharedStub..ng\n" \ +" .end _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \ +" .else\n" \ +" .err \"stub number "#n"> 1000 not yet supported\"\n" \ +" .endif\n" \ + ); +#else /* G++2.95 ABI */ #define STUB_ENTRY(n) \ __asm__( \ "#### Stub"#n" ####\n" \ @@ -204,6 +248,7 @@ "br $31,$SharedStub..ng\n\t" \ ".end Stub"#n"__14nsXPTCStubBase" \ ); +#endif #define SENTINEL_ENTRY(n) \ nsresult nsXPTCStubBase::Sentinel##n() \