$NetBSD: patch-xm,v 1.1.1.1 2012/03/15 09:45:30 ryoon Exp $ NetBSD/ppc xptcall support code. Originally from pkgsrc/www/mozilla. --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2012-02-16 10:25:33.000000000 +0000 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp @@ -40,9 +40,9 @@ // Platform specific code to invoke XPCOM methods on native objects -// The purpose of XPTC_InvokeByIndex() is to map a platform +// The purpose of NS_InvokeByIndex_P() is to map a platform // indepenpent call to the platform ABI. To do that, -// XPTC_InvokeByIndex() has to determine the method to call via vtable +// NS_InvokeByIndex_P() has to determine the method to call via vtable // access. The parameters for the method are read from the // nsXPTCVariant* and prepared for the native ABI. For the Linux/PPC // ABI this means that the first 8 integral and floating point @@ -104,8 +104,10 @@ invoke_copy_to_stack(PRUint32* d, if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack *((double*) d) = s->val.d; d += 2; +#if __GXX_ABI_VERSION < 100 if (gpr < GPR_COUNT) gpr += 2; +#endif } } else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { @@ -114,8 +116,10 @@ invoke_copy_to_stack(PRUint32* d, else { *((float*) d) = s->val.f; d += 1; +#if __GXX_ABI_VERSION < 100 if (gpr < GPR_COUNT) gpr += 1; +#endif } } else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 @@ -142,6 +146,6 @@ invoke_copy_to_stack(PRUint32* d, } extern "C" -XPTC_PUBLIC_API(nsresult) -XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, +EXPORT_XPCOM_API(nsresult) +NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex, PRUint32 paramCount, nsXPTCVariant* params);