diff options
Diffstat (limited to 'time/sunbird/patches/patch-ca')
-rw-r--r-- | time/sunbird/patches/patch-ca | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/time/sunbird/patches/patch-ca b/time/sunbird/patches/patch-ca new file mode 100644 index 00000000000..74b6ad29934 --- /dev/null +++ b/time/sunbird/patches/patch-ca @@ -0,0 +1,166 @@ +$NetBSD: patch-ca,v 1.1.1.1 2006/02/05 21:56:27 ghen Exp $ + +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2006-02-02 16:57:57.000000000 +0100 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s +@@ -1,27 +1,28 @@ +-# -*- Mode: Asm -*- +-# +-# The contents of this file are subject to the Netscape Public +-# License Version 1.1 (the "License"); you may not use this file +-# except in compliance with the License. You may obtain a copy of +-# the License at http://www.mozilla.org/NPL/ +-# +-# Software distributed under the License is distributed on an "AS +-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +-# implied. See the License for the specific language governing +-# rights and limitations under the License. +-# +-# The Original Code is mozilla.org code. +-# +-# The Initial Developer of the Original Code is Netscape +-# Communications Corporation. Portions created by Netscape are +-# Copyright (C) 1999 Netscape Communications Corporation. All +-# Rights Reserved. +-# +-# Contributor(s): +-# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) +-# beard@netscape.com (Patrick Beard) +-# waterson@netscape.com (Chris Waterson) +-# ++// -*- Mode: Asm -*- ++// ++// The contents of this file are subject to the Netscape Public ++// License Version 1.1 (the "License"); you may not use this file ++// except in compliance with the License. You may obtain a copy of ++// the License at http://www.mozilla.org/NPL/ ++// ++// Software distributed under the License is distributed on an "AS ++// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++// implied. See the License for the specific language governing ++// rights and limitations under the License. ++// ++// The Original Code is mozilla.org code. ++// ++// The Initial Developer of the Original Code is Netscape ++// Communications Corporation. Portions created by Netscape are ++// Copyright (C) 1999 Netscape Communications Corporation. All ++// Rights Reserved. ++// ++// Contributor(s): ++// Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++// beard@netscape.com (Patrick Beard) ++// waterson@netscape.com (Chris Waterson) ++// ++ + .set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 + .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 + .set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +@@ -42,38 +43,38 @@ + .globl XPTC_InvokeByIndex + .type XPTC_InvokeByIndex,@function + +-# +-# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, +-# PRUint32 paramCount, nsXPTCVariant* params) +-# ++// ++// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++// PRUint32 paramCount, nsXPTCVariant* params) ++// + + XPTC_InvokeByIndex: +- stwu sp,-32(sp) # setup standard stack frame +- mflr r0 # save LR +- stw r3,8(sp) # r3 <= that +- stw r4,12(sp) # r4 <= methodIndex ++ stwu sp,-32(sp) // setup standard stack frame ++ mflr r0 // save LR ++ stw r3,8(sp) // r3 <= that ++ stw r4,12(sp) // r4 <= methodIndex + stw r30,16(sp) + stw r31,20(sp) + +- stw r0,36(sp) # store LR backchain ++ stw r0,36(sp) // store LR backchain + mr r31,sp + +- rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f +- addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 +- lwz r9,0(sp) # r9 = backchain ++ rlwinm r10,r5,3,0,27 // r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 // reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) // r9 = backchain + neg r0,r0 +- stwux r9,sp,r0 # reserve stack sapce and save SP backchain +- +- addi r3,sp,8 # r3 <= args +- mr r4,r5 # r4 <= paramCount +- mr r5,r6 # r5 <= params +- add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) +- mr r30,r6 # store in r30 for use later... +- addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ stwux r9,sp,r0 // reserve stack space and save SP backchain ++ ++ addi r3,sp,8 // r3 <= args ++ mr r4,r5 // r4 <= paramCount ++ mr r5,r6 // r5 <= params ++ add r6,r3,r10 // r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 // store in r30 for use later... ++ addi r7,r6,32 // r7 <= fpregs ( == gpregs + 32 ) + +- bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ bl invoke_copy_to_stack@local // (args, paramCount, params, gpregs, fpregs) + +- lfd f1,32(r30) # load FP registers with method parameters ++ lfd f1,32(r30) // load FP registers with method parameters + lfd f2,40(r30) + lfd f3,48(r30) + lfd f4,56(r30) +@@ -82,18 +83,18 @@ XPTC_InvokeByIndex: + lfd f7,80(r30) + lfd f8,88(r30) + +- lwz r3,8(r31) # r3 <= that +- lwz r4,12(r31) # r4 <= methodIndex +- lwz r5,0(r3) # r5 <= vtable ( == *that ) +- slwi r4,r4,3 # convert to offset ( *= 8 ) +- addi r4,r4,8 # skip first two vtable entries +- add r4,r4,r5 +- lhz r0,0(r4) # virtual base offset +- extsh r0,r0 +- add r3,r3,r0 +- lwz r0,4(r4) # r0 <= methodpointer ( == vtable + offset ) ++ lwz r3,8(r31) // r3 <= that ++ lwz r4,12(r31) // r4 <= methodIndex ++ lwz r5,0(r3) // r5 <= vtable ( == *that ) ++#if !((__GNUC__ == 3 && __GNUC_MINOR__ < 2) || __GXX_ABI_VERSION >= 100) // G++ pre-V3 ABI is like that of AIX under NetBSD ++ slwi r4,r4,3 // convert to offset ( *= 8 ) ++ addi r4,r4,8 // skip garbage before vtable ++#else ++ slwi r4,r4,2 // convert to offset ( *= 4 ) ++#endif ++ lwzx r0,r5,r4 // r0 <= methodpointer ( == vtable + offset ) + +- lwz r4,4(r30) # load GP regs with method parameters ++ lwz r4,4(r30) // load GP regs with method parameters + lwz r5,8(r30) + lwz r6,12(r30) + lwz r7,16(r30) +@@ -101,13 +102,13 @@ XPTC_InvokeByIndex: + lwz r9,24(r30) + lwz r10,28(r30) + +- mtlr r0 # copy methodpointer to LR +- blrl # call method ++ mtlr r0 // copy methodpointer to LR ++ blrl // call method + +- lwz r30,16(r31) # restore r30 & r31 ++ lwz r30,16(r31) // restore r30 & r31 + lwz r31,20(r31) + +- lwz r11,0(sp) # clean up the stack ++ lwz r11,0(sp) // clean up the stack + lwz r0,4(r11) + mtlr r0 + mr sp,r11 |