summaryrefslogtreecommitdiff
path: root/www/mozilla-stable/patches/patch-ca
diff options
context:
space:
mode:
Diffstat (limited to 'www/mozilla-stable/patches/patch-ca')
-rw-r--r--www/mozilla-stable/patches/patch-ca166
1 files changed, 166 insertions, 0 deletions
diff --git a/www/mozilla-stable/patches/patch-ca b/www/mozilla-stable/patches/patch-ca
new file mode 100644
index 00000000000..006313db3bb
--- /dev/null
+++ b/www/mozilla-stable/patches/patch-ca
@@ -0,0 +1,166 @@
+$NetBSD: patch-ca,v 1.1 2004/12/04 03:50:41 taya Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2001-03-11 18:22:17.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