summaryrefslogtreecommitdiff
path: root/www/mozilla/files
diff options
context:
space:
mode:
authortaya <taya@pkgsrc.org>2001-03-30 09:37:47 +0000
committertaya <taya@pkgsrc.org>2001-03-30 09:37:47 +0000
commit1192687b9416f068dbeb105cc4bb6dc61cd56be6 (patch)
treef66929229477b41b5daeb4dff3cd461bb39fa4b9 /www/mozilla/files
parent47e087606e3f89d4bcfd484c8a26b918a65e053f (diff)
downloadpkgsrc-1192687b9416f068dbeb105cc4bb6dc61cd56be6.tar.gz
Update to mozilla 0.8.1
See the release notes for detail: http://www.mozilla.org/releases/mozilla0.8.1/ Currently only tested(and worked) on -current/i386. Tested on 1.5.1_ALPHA/mac68k, but did not work(still investigating).
Diffstat (limited to 'www/mozilla/files')
-rw-r--r--www/mozilla/files/md54
-rw-r--r--www/mozilla/files/patch-sum18
-rw-r--r--www/mozilla/files/xptcinvoke_arm_netbsd.cpp198
-rw-r--r--www/mozilla/files/xptcinvoke_asm_ppc_netbsd.s114
-rw-r--r--www/mozilla/files/xptcinvoke_asm_sparc_netbsd.s71
-rw-r--r--www/mozilla/files/xptcinvoke_ppc_netbsd.cpp132
-rw-r--r--www/mozilla/files/xptcinvoke_sparc_netbsd.cpp141
-rw-r--r--www/mozilla/files/xptcstubs_arm_netbsd.cpp130
-rw-r--r--www/mozilla/files/xptcstubs_asm_ppc_netbsd.s89
-rw-r--r--www/mozilla/files/xptcstubs_asm_sparc_netbsd.s65
-rw-r--r--www/mozilla/files/xptcstubs_ppc_netbsd.cpp202
-rw-r--r--www/mozilla/files/xptcstubs_sparc_netbsd.cpp131
12 files changed, 8 insertions, 1287 deletions
diff --git a/www/mozilla/files/md5 b/www/mozilla/files/md5
index bf6f952db14..7577bde0c2e 100644
--- a/www/mozilla/files/md5
+++ b/www/mozilla/files/md5
@@ -1,3 +1,3 @@
-$NetBSD: md5,v 1.22 2001/02/23 22:32:13 tron Exp $
+$NetBSD: md5,v 1.23 2001/03/30 09:37:48 taya Exp $
-MD5 (mozilla-source-0.8.tar.bz2) = c2c5e6d1257b9da80ccb6b424974b1c3
+SHA1 (mozilla-source-0.8.1.tar.bz2) = 3da3c9b236cdd662e98b2c655ce343478cdbaccb
diff --git a/www/mozilla/files/patch-sum b/www/mozilla/files/patch-sum
index ac152e08bee..e8225661da0 100644
--- a/www/mozilla/files/patch-sum
+++ b/www/mozilla/files/patch-sum
@@ -1,13 +1,7 @@
-$NetBSD: patch-sum,v 1.45 2001/02/17 11:03:27 taya Exp $
+$NetBSD: patch-sum,v 1.46 2001/03/30 09:37:48 taya Exp $
-MD5 (patch-aa) = e245022fb0da3886d6801b608b40f397
-MD5 (patch-ab) = 9c0f2acac8e4add32f51aac86663b9a4
-MD5 (patch-ac) = 37c5e93a87f43262c38c9fe46a513740
-MD5 (patch-af) = c9236a83a307ec1ffa1a440ba4686507
-MD5 (patch-ag) = 05078a1e8064f7b4c05c6b32a81b1eb0
-MD5 (patch-ah) = 8f6975c0fb5454958416f2b87d789c99
-MD5 (patch-aj) = 355b0025e6cf2273acd1ba56a4f40d5e
-MD5 (patch-ak) = ca73d68752d0b4df37fa09874729765a
-MD5 (patch-an) = 326f7396ebdc736b7a600aa17d4daf61
-MD5 (patch-ao) = c856ee47e1b24580f61af634faa1e2bd
-MD5 (patch-aq) = 734f5fb211b0d290f42c4463f1d7c464
+SHA1 (patch-ao) = de139891a25f136c0192e2089ff81c881a3cf396
+SHA1 (patch-aq) = 1d380eca30f686cfa44b8f8f2e35cb0f1a802b12
+SHA1 (patch-ar) = 89da463a694f4250e15f5a622a270a7ad68252ed
+SHA1 (patch-as) = 470175fc894b0bcf844ab4335613893040956ae7
+SHA1 (patch-at) = a1ed1da212a11a6af33cd5b270d460c329d9998f
diff --git a/www/mozilla/files/xptcinvoke_arm_netbsd.cpp b/www/mozilla/files/xptcinvoke_arm_netbsd.cpp
deleted file mode 100644
index c917aff616f..00000000000
--- a/www/mozilla/files/xptcinvoke_arm_netbsd.cpp
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- */
-
-/* Platform specific code to invoke XPCOM methods on native objects */
-
-#include "xptcprivate.h"
-
-// Remember that these 'words' are 32bit DWORDS
-
-static PRUint32
-invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
-{
- PRUint32 result = 0;
- for(PRUint32 i = 0; i < paramCount; i++, s++)
- {
- if(s->IsPtrData())
- {
- result++;
- continue;
- }
- switch(s->type)
- {
- case nsXPTType::T_I8 :
- case nsXPTType::T_I16 :
- case nsXPTType::T_I32 :
- result++;
- break;
- case nsXPTType::T_I64 :
- result+=2;
- break;
- case nsXPTType::T_U8 :
- case nsXPTType::T_U16 :
- case nsXPTType::T_U32 :
- result++;
- break;
- case nsXPTType::T_U64 :
- result+=2;
- break;
- case nsXPTType::T_FLOAT :
- result++;
- break;
- case nsXPTType::T_DOUBLE :
- result+=2;
- break;
- case nsXPTType::T_BOOL :
- case nsXPTType::T_CHAR :
- case nsXPTType::T_WCHAR :
- result++;
- break;
- default:
- // all the others are plain pointer types
- result++;
- break;
- }
- }
- return result;
-}
-
-static void
-invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, nsXPTCVariant* s)
-{
- for(PRUint32 i = 0; i < paramCount; i++, d++, s++)
- {
- if(s->IsPtrData())
- {
- *((void**)d) = s->ptr;
- continue;
- }
- switch(s->type)
- {
- case nsXPTType::T_I8 : *((PRInt8*) d) = s->val.i8; break;
- case nsXPTType::T_I16 : *((PRInt16*) d) = s->val.i16; break;
- case nsXPTType::T_I32 : *((PRInt32*) d) = s->val.i32; break;
- case nsXPTType::T_I64 : *((PRInt64*) d) = s->val.i64; d++; break;
- case nsXPTType::T_U8 : *((PRUint8*) d) = s->val.u8; break;
- case nsXPTType::T_U16 : *((PRUint16*)d) = s->val.u16; break;
- case nsXPTType::T_U32 : *((PRUint32*)d) = s->val.u32; break;
- case nsXPTType::T_U64 : *((PRUint64*)d) = s->val.u64; d++; break;
- case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break;
- case nsXPTType::T_DOUBLE : *((double*) d) = s->val.d; d++; break;
- case nsXPTType::T_BOOL : *((PRBool*) d) = s->val.b; break;
- case nsXPTType::T_CHAR : *((char*) d) = s->val.c; break;
- case nsXPTType::T_WCHAR : *((wchar_t*) d) = s->val.wc; break;
- default:
- // all the others are plain pointer types
- *((void**)d) = s->val.p;
- break;
- }
- }
-}
-
-extern "C"
-struct my_params_struct {
- nsISupports* that;
- PRUint32 Index;
- PRUint32 Count;
- nsXPTCVariant* params;
- PRUint32 fn_count;
- PRUint32 fn_copy;
-};
-
-XPTC_PUBLIC_API(nsresult)
-XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
- PRUint32 paramCount, nsXPTCVariant* params)
-{
- PRUint32 result;
- struct my_params_struct my_params;
- my_params.that = that;
- my_params.Index = methodIndex;
- my_params.Count = paramCount;
- my_params.params = params;
- my_params.fn_copy = (PRUint32) &invoke_copy_to_stack;
- my_params.fn_count = (PRUint32) &invoke_count_words;
-
-/* This is to call a given method of class that.
- * The parameters are in params, the number is in paramCount.
- * The routine will issue calls to count the number of words
- * required for argument passing and to copy the arguments to
- * the stack.
- * Since APCS passes the first 3 params in r1-r3, we need to
- * load the first three words from the stack and correct the stack
- * pointer (sp) in the appropriate way. This means:
- *
- * 1.) more than 3 arguments: load r1-r3, correct sp and remember No.
- * of bytes left on the stack in r4
- *
- * 2.) <= 2 args: load r1-r3 (we won't be causing a stack overflow I hope),
- * restore sp as if nothing had happened and set the marker r4 to zero.
- *
- * Afterwards sp will be restored using the value in r4 (which is not a temporary register
- * and will be preserved by the function/method called according to APCS [ARM Procedure
- * Calling Standard]).
- *
- * !!! IMPORTANT !!!
- * This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
- * for arm-linux GNU g++ >= 2.8.1 (including egcs and gcc-2.95.[1-3])!
- *
- */
-
- __asm__ __volatile__(
- "ldr r1, [%1, #12] \n\t" /* prepare to call invoke_count_words */
- "ldr ip, [%1, #16] \n\t" /* r0=paramCount, r1=params */
- "ldr r0, [%1, #8] \n\t"
- "mov lr, pc \n\t" /* call it... */
- "mov pc, ip \n\t"
- "mov r4, r0, lsl #2 \n\t" /* This is the amount of bytes needed. */
- "sub sp, sp, r4 \n\t" /* use stack space for the args... */
- "mov r0, sp \n\t" /* prepare a pointer an the stack */
- "ldr r1, [%1, #8] \n\t" /* =paramCount */
- "ldr r2, [%1, #12] \n\t" /* =params */
- "ldr ip, [%1, #20] \n\t" /* =invoke_copy_to_stack */
- "mov lr, pc \n\t" /* copy args to the stack like the */
- "mov pc, ip \n\t" /* compiler would. */
- "ldr r0, [%1] \n\t" /* =that */
- "ldr r1, [r0, #0] \n\t" /* get that->vtable offset */
- "ldr r2, [%1, #4] \n\t"
- "add r2, r1, r2, lsl #3\n\t" /* a vtable_entry(x)=8 + (8 bytes * x) */
- "add r2, r2, #8 \n\t" /* with this compilers */
- "ldr r3, [r2] \n\t" /* get virtual offset from vtable */
- "mov r3, r3, lsl #16 \n\t"
- "add r0, r0, r3, asr #16\n\t"
- "ldr ip, [r2, #4] \n\t" /* get method address from vtable */
- "cmp r4, #12 \n\t" /* more than 3 arguments??? */
- "ldmgtia sp!, {r1, r2, r3}\n\t" /* yes: load arguments for r1-r3 */
- "subgt r4, r4, #12 \n\t" /* and correct the stack pointer */
- "ldmleia sp, {r1, r2, r3}\n\t" /* no: load r1-r3 from stack */
- "addle sp, sp, r4 \n\t" /* and restore stack pointer */
- "movle r4, #0 \n\t" /* a mark for restoring sp */
- "mov lr, pc \n\t" /* call mathod */
- "mov pc, ip \n\t"
- "add sp, sp, r4 \n\t" /* restore stack pointer */
- "mov %0, r0 \n\t" /* the result... */
- : "=r" (result)
- : "r" (&my_params)
- : "r0", "r1", "r2", "r3", "r4", "ip", "lr"
- );
-
- return result;
-}
diff --git a/www/mozilla/files/xptcinvoke_asm_ppc_netbsd.s b/www/mozilla/files/xptcinvoke_asm_ppc_netbsd.s
deleted file mode 100644
index 18c775a9b71..00000000000
--- a/www/mozilla/files/xptcinvoke_asm_ppc_netbsd.s
+++ /dev/null
@@ -1,114 +0,0 @@
-# -*- 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
-.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
-.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
-.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
-.set r30,30; .set r31,31
-.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
-.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
-.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
-.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
-.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
-.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
-.set f30,30; .set f31,31
-
- .section ".text"
- .align 2
- .globl XPTC_InvokeByIndex
- .type XPTC_InvokeByIndex,@function
-
-#
-# 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
- stw r30,16(sp)
- stw r31,20(sp)
-
- 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
- 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 )
-
- bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs)
-
- lfd f1,32(r30) # load FP registers with method parameters
- lfd f2,40(r30)
- lfd f3,48(r30)
- lfd f4,56(r30)
- lfd f5,64(r30)
- lfd f6,72(r30)
- 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 r4,4(r30) # load GP regs with method parameters
- lwz r5,8(r30)
- lwz r6,12(r30)
- lwz r7,16(r30)
- lwz r8,20(r30)
- lwz r9,24(r30)
- lwz r10,28(r30)
-
- mtlr r0 # copy methodpointer to LR
- blrl # call method
-
- lwz r30,16(r31) # restore r30 & r31
- lwz r31,20(r31)
-
- lwz r11,0(sp) # clean up the stack
- lwz r0,4(r11)
- mtlr r0
- mr sp,r11
- blr
diff --git a/www/mozilla/files/xptcinvoke_asm_sparc_netbsd.s b/www/mozilla/files/xptcinvoke_asm_sparc_netbsd.s
deleted file mode 100644
index dfe6fde9963..00000000000
--- a/www/mozilla/files/xptcinvoke_asm_sparc_netbsd.s
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- */
-
-/* Platform specific code to invoke XPCOM methods on native objects */
- .global XPTC_InvokeByIndex
-/*
- XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
- PRUint32 paramCount, nsXPTCVariant* params);
-
-*/
-XPTC_InvokeByIndex:
- save %sp,-(64 + 16),%sp ! room for the register window and
- ! struct pointer, rounded up to 0 % 16
- mov %i2,%o0 ! paramCount
- call invoke_count_words ! returns the required stack size in %o0
- mov %i3,%o1 ! params
-
- sll %o0,2,%l0 ! number of bytes
- sub %sp,%l0,%sp ! create the additional stack space
-
- mov %sp,%o0 ! pointer for copied args
- add %o0,72,%o0 ! step past the register window, the
- ! struct result pointer and the 'this' slot
- mov %i2,%o1 ! paramCount
- call invoke_copy_to_stack
- mov %i3,%o2 ! params
-!
-! calculate the target address from the vtable
-!
- add %i1,1,%i1 ! vTable is zero-based, index is 1 based (?)
- ld [%i0],%l1 ! *that --> vTable
- sll %i1,3,%i1
- add %i1,%l1,%l1 ! vTable[index * 8], l1 now points to vTable entry
- lduh [%l1],%l0 ! this adjustor
- sll %l0,16,%l0 ! sign extend to 32 bits
- sra %l0,16,%l0
- add %l0,%i0,%i0 ! adjust this
- ld [%l1 + 4],%l0 ! target address
-
-.L5: ld [%sp + 88],%o5
-.L4: ld [%sp + 84],%o4
-.L3: ld [%sp + 80],%o3
-.L2: ld [%sp + 76],%o2
-.L1: ld [%sp + 72],%o1
-.L0:
- jmpl %l0,%o7 ! call the routine
-! always have a 'this', from the incoming 'that'
- mov %i0,%o0
-
- mov %o0,%i0 ! propogate return value
- ret
- restore
diff --git a/www/mozilla/files/xptcinvoke_ppc_netbsd.cpp b/www/mozilla/files/xptcinvoke_ppc_netbsd.cpp
deleted file mode 100644
index ecd35ab0266..00000000000
--- a/www/mozilla/files/xptcinvoke_ppc_netbsd.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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) 1998 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)
- */
-
-// Platform specific code to invoke XPCOM methods on native objects
-
-// The purpose of XPTC_InvokeByIndex() 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
-// access. The parameters for the method are read from the
-// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC
-// ABI this means that the first 8 integral and floating point
-// parameters are passed in registers.
-
-#include "xptcprivate.h"
-
-// 8 integral parameters are passed in registers
-#define GPR_COUNT 8
-
-// 8 floating point parameters are passed in registers, floats are
-// promoted to doubles when passed in registers
-#define FPR_COUNT 8
-
-extern "C" PRUint32
-invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
-{
- return PRUint32(((paramCount * 2) + 3) & ~3);
-}
-
-extern "C" void
-invoke_copy_to_stack(PRUint32* d,
- PRUint32 paramCount,
- nsXPTCVariant* s,
- PRUint32* gpregs,
- double* fpregs)
-{
- PRUint32 gpr = 1; // skip one GP reg for 'that'
- PRUint32 fpr = 0;
- PRUint32 tempu32;
- PRUint64 tempu64;
-
- for(uint32 i = 0; i < paramCount; i++, s++) {
- if(s->IsPtrData())
- tempu32 = (PRUint32) s->ptr;
- else {
- switch(s->type) {
- case nsXPTType::T_FLOAT: break;
- case nsXPTType::T_DOUBLE: break;
- case nsXPTType::T_I8: tempu32 = s->val.i8; break;
- case nsXPTType::T_I16: tempu32 = s->val.i16; break;
- case nsXPTType::T_I32: tempu32 = s->val.i32; break;
- case nsXPTType::T_I64: tempu64 = s->val.i64; break;
- case nsXPTType::T_U8: tempu32 = s->val.u8; break;
- case nsXPTType::T_U16: tempu32 = s->val.u16; break;
- case nsXPTType::T_U32: tempu32 = s->val.u32; break;
- case nsXPTType::T_U64: tempu64 = s->val.u64; break;
- case nsXPTType::T_BOOL: tempu32 = s->val.b; break;
- case nsXPTType::T_CHAR: tempu32 = s->val.c; break;
- case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break;
- default: tempu32 = (PRUint32) s->val.p; break;
- }
- }
-
- if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
- if (fpr < FPR_COUNT)
- fpregs[fpr++] = s->val.d;
- else {
- if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack
- *((double*) d) = s->val.d;
- d += 2;
- if (gpr < GPR_COUNT)
- gpr += 2;
- }
- }
- else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
- if (fpr < FPR_COUNT)
- fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles
- else {
- *((float*) d) = s->val.f;
- d += 1;
- if (gpr < GPR_COUNT)
- gpr += 1;
- }
- }
- else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
- || s->type == nsXPTType::T_U64)) {
- if ((gpr + 1) < GPR_COUNT) {
- if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
- *((PRUint64*) &gpregs[gpr]) = tempu64;
- gpr += 2;
- }
- else {
- if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack
- *((PRUint64*) d) = tempu64;
- d += 2;
- }
- }
- else {
- if (gpr < GPR_COUNT)
- gpregs[gpr++] = tempu32;
- else
- *d++ = tempu32;
- }
-
- }
-}
-
-extern "C"
-XPTC_PUBLIC_API(nsresult)
-XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
- PRUint32 paramCount, nsXPTCVariant* params);
diff --git a/www/mozilla/files/xptcinvoke_sparc_netbsd.cpp b/www/mozilla/files/xptcinvoke_sparc_netbsd.cpp
deleted file mode 100644
index ba1f1a0298d..00000000000
--- a/www/mozilla/files/xptcinvoke_sparc_netbsd.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- */
-
-/* Platform specific code to invoke XPCOM methods on native objects */
-
-#include "xptcprivate.h"
-
-/* solaris defines __sparc for workshop compilers and
- linux defines __sparc__ */
-
-#if !defined(__sparc) && !defined(__sparc__)
-#error "This code is for Sparc only"
-#endif
-
-typedef unsigned nsXPCVariant;
-
-extern "C" PRUint32
-invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
-{
- PRUint32 result = 0;
- for(PRUint32 i = 0; i < paramCount; i++, s++)
- {
- if(s->IsPtrData())
- {
- result++;
- continue;
- }
- switch(s->type)
- {
- case nsXPTType::T_I8 :
- case nsXPTType::T_I16 :
- case nsXPTType::T_I32 :
- result++;
- break;
- case nsXPTType::T_I64 :
- result+=2;
- break;
- case nsXPTType::T_U8 :
- case nsXPTType::T_U16 :
- case nsXPTType::T_U32 :
- result++;
- break;
- case nsXPTType::T_U64 :
- result+=2;
- break;
- case nsXPTType::T_FLOAT :
- result++;
- break;
- case nsXPTType::T_DOUBLE :
- result+=2;
- break;
- case nsXPTType::T_BOOL :
- case nsXPTType::T_CHAR :
- case nsXPTType::T_WCHAR :
- result++;
- break;
- default:
- // all the others are plain pointer types
- result++;
- break;
- }
- }
- // nuts, I know there's a cooler way of doing this, but it's late
- // now and it'll probably come to me in the morning.
- if (result & 0x3) result += 4 - (result & 0x3); // ensure q-word alignment
- return result;
-}
-
-extern "C" PRUint32
-invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, nsXPTCVariant* s)
-{
-/*
- We need to copy the parameters for this function to locals and use them
- from there since the parameters occupy the same stack space as the stack
- we're trying to populate.
-*/
- uint32 *l_d = d;
- nsXPTCVariant *l_s = s;
- uint32 l_paramCount = paramCount;
- uint32 regCount = 0; // return the number of registers to load from the stack
-
- typedef struct {
- uint32 hi;
- uint32 lo;
- } DU; // have to move 64 bit entities as 32 bit halves since
- // stack slots are not guaranteed 16 byte aligned
-
- for(uint32 i = 0; i < l_paramCount; i++, l_d++, l_s++)
- {
- if (regCount < 5) regCount++;
- if(l_s->IsPtrData())
- {
- *((void**)l_d) = l_s->ptr;
- continue;
- }
- switch(l_s->type)
- {
- case nsXPTType::T_I8 : *((int32*) l_d) = l_s->val.i8; break;
- case nsXPTType::T_I16 : *((int32*) l_d) = l_s->val.i16; break;
- case nsXPTType::T_I32 : *((int32*) l_d) = l_s->val.i32; break;
- case nsXPTType::T_I64 :
- case nsXPTType::T_U64 :
- case nsXPTType::T_DOUBLE : *((uint32*) l_d++) = ((DU *)l_s)->hi;
- if (regCount < 5) regCount++;
- *((uint32*) l_d) = ((DU *)l_s)->lo;
- break;
- case nsXPTType::T_U8 : *((uint32*) l_d) = l_s->val.u8; break;
- case nsXPTType::T_U16 : *((uint32*) l_d) = l_s->val.u16; break;
- case nsXPTType::T_U32 : *((uint32*) l_d) = l_s->val.u32; break;
- case nsXPTType::T_FLOAT : *((float*) l_d) = l_s->val.f; break;
- case nsXPTType::T_BOOL : *((PRBool*) l_d) = l_s->val.b; break;
- case nsXPTType::T_CHAR : *((uint32*) l_d) = l_s->val.c; break;
- case nsXPTType::T_WCHAR : *((int32*)l_d) = l_s->val.wc; break;
- default:
- // all the others are plain pointer types
- *((void**)l_d) = l_s->val.p;
- break;
- }
- }
- return regCount;
-}
-
diff --git a/www/mozilla/files/xptcstubs_arm_netbsd.cpp b/www/mozilla/files/xptcstubs_arm_netbsd.cpp
deleted file mode 100644
index 28a68bcdf3f..00000000000
--- a/www/mozilla/files/xptcstubs_arm_netbsd.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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):
- */
-
-/* Implement shared vtbl methods. */
-
-#include "xptcprivate.h"
-
-nsresult
-PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
-{
-#define PARAM_BUFFER_COUNT 16
-
- nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
- nsXPTCMiniVariant* dispatchParams = NULL;
- nsIInterfaceInfo* iface_info = NULL;
- const nsXPTMethodInfo* info;
- PRUint8 paramCount;
- PRUint8 i;
- nsresult result = NS_ERROR_FAILURE;
-
- NS_ASSERTION(self,"no self");
-
- self->GetInterfaceInfo(&iface_info);
- NS_ASSERTION(iface_info,"no interface info");
-
- iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
- NS_ASSERTION(info,"no interface info");
-
- paramCount = info->GetParamCount();
-
- // setup variant array pointer
- if(paramCount > PARAM_BUFFER_COUNT)
- dispatchParams = new nsXPTCMiniVariant[paramCount];
- else
- dispatchParams = paramBuffer;
- NS_ASSERTION(dispatchParams,"no place for params");
-
- PRUint32* ap = args;
- for(i = 0; i < paramCount; i++, ap++)
- {
- const nsXPTParamInfo& param = info->GetParam(i);
- const nsXPTType& type = param.GetType();
- nsXPTCMiniVariant* dp = &dispatchParams[i];
-
- if(param.IsOut() || !type.IsArithmetic())
- {
- dp->val.p = (void*) *ap;
- continue;
- }
- // else
- switch(type)
- {
- case nsXPTType::T_I8 : dp->val.i8 = *((PRInt8*) ap); break;
- case nsXPTType::T_I16 : dp->val.i16 = *((PRInt16*) ap); break;
- case nsXPTType::T_I32 : dp->val.i32 = *((PRInt32*) ap); break;
- case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) ap); ap++; break;
- case nsXPTType::T_U8 : dp->val.u8 = *((PRUint8*) ap); break;
- case nsXPTType::T_U16 : dp->val.u16 = *((PRUint16*)ap); break;
- case nsXPTType::T_U32 : dp->val.u32 = *((PRUint32*)ap); break;
- case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*)ap); ap++; break;
- case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
- case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break;
- case nsXPTType::T_BOOL : dp->val.b = *((PRBool*) ap); break;
- case nsXPTType::T_CHAR : dp->val.c = *((char*) ap); break;
- case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break;
- default:
- NS_ASSERTION(0, "bad type");
- break;
- }
- }
-
- result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
-
- NS_RELEASE(iface_info);
-
- if(dispatchParams != paramBuffer)
- delete [] dispatchParams;
-
- return result;
-}
-
-/*
- * These stubs move just move the values passed in registers onto the stack,
- * so they are contiguous with values passed on the stack, and then calls
- * PrepareAndDispatch() to do the dirty work.
- */
-
-#define STUB_ENTRY(n) \
-__asm__( \
- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
-"_Stub"#n"__14nsXPTCStubBase:\n\t" \
- "stmfd sp!, {r1, r2, r3} \n\t" \
- "mov ip, sp \n\t" \
- "stmfd sp!, {fp, ip, lr, pc} \n\t" \
- "sub fp, ip, #4 \n\t" \
- "mov r1, #"#n" \n\t" /* = methodIndex */ \
- "add r2, sp, #16 \n\t" \
- "bl _PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
- "ldmea fp, {fp, sp, lr} \n\t" \
- "add sp, sp, #12 \n\t" \
- "mov pc, lr \n\t" \
-);
-
-#define SENTINEL_ENTRY(n) \
-nsresult nsXPTCStubBase::Sentinel##n() \
-{ \
- NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
- return NS_ERROR_NOT_IMPLEMENTED; \
-}
-
-#include "xptcstubsdef.inc"
diff --git a/www/mozilla/files/xptcstubs_asm_ppc_netbsd.s b/www/mozilla/files/xptcstubs_asm_ppc_netbsd.s
deleted file mode 100644
index f94aac4f724..00000000000
--- a/www/mozilla/files/xptcstubs_asm_ppc_netbsd.s
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- 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
-.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
-.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
-.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
-.set r30,30; .set r31,31
-.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
-.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
-.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
-.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
-.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
-.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
-.set f30,30; .set f31,31
-
- .section ".text"
- .align 2
- .globl SharedStub
- .type SharedStub,@function
-
-SharedStub:
- stwu sp,-112(sp) # room for
- # linkage (8),
- # gprData (32),
- # fprData (64),
- # stack alignment(8)
- mflr r0
- stw r0,116(sp) # save LR backchain
-
- stw r4,12(sp) # save GP registers
- stw r5,16(sp) # (n.b. that we don't save r3
- stw r6,20(sp) # because PrepareAndDispatch() is savvy)
- stw r7,24(sp)
- stw r8,28(sp)
- stw r9,32(sp)
- stw r10,36(sp)
-
- stfd f1,40(sp) # save FP registers
- stfd f2,48(sp)
- stfd f3,56(sp)
- stfd f4,64(sp)
- stfd f5,72(sp)
- stfd f6,80(sp)
- stfd f7,88(sp)
- stfd f8,96(sp)
-
- # r3 has the 'self' pointer already
-
- mr r4,r11 # r4 <= methodIndex selector, passed
- # via r11 in the nsXPTCStubBase::StubXX() call
-
- addi r5,sp,120 # r5 <= pointer to callers args area,
- # beyond r3-r10/f1-f8 mapped range
-
- addi r6,sp,8 # r6 <= gprData
- addi r7,sp,40 # r7 <= fprData
-
- bl PrepareAndDispatch@local # Go!
-
- lwz r0,116(sp) # restore LR
- mtlr r0
- la sp,112(sp) # clean up the stack
- blr
-
diff --git a/www/mozilla/files/xptcstubs_asm_sparc_netbsd.s b/www/mozilla/files/xptcstubs_asm_sparc_netbsd.s
deleted file mode 100644
index a208d31c220..00000000000
--- a/www/mozilla/files/xptcstubs_asm_sparc_netbsd.s
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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):
- */
-
- .global SharedStub
-
-/*
- in the frame for the function that called SharedStub are the
- rest of the parameters we need
-
-*/
-
-SharedStub:
-! we don't create a new frame yet, but work within the frame of the calling
-! function to give ourselves the other parameters we want
-
- mov %o0, %o1 ! shuffle the index up to 2nd place
- mov %i0, %o0 ! the original 'this'
- add %fp, 72, %o2 ! previous stack top adjusted to the first argument slot (beyond 'this')
-! save off the original incoming parameters that arrived in
-! registers, the ABI guarantees the space for us to do this
- st %i1, [%fp + 72]
- st %i2, [%fp + 76]
- st %i3, [%fp + 80]
- st %i4, [%fp + 84]
- st %i5, [%fp + 88]
-! now we can build our own stack frame
- save %sp,-(64 + 32),%sp ! room for the register window and
- ! struct pointer, rounded up to 0 % 32
-! our function now appears to have been called
-! as SharedStub(nsISupports* that, PRUint32 index, PRUint32* args)
-! so we can just copy these through
-
- mov %i0, %o0
- mov %i1, %o1
- mov %i2, %o2
- call PrepareAndDispatch
- nop
- mov %o0,%i0 ! propogate return value
- b .LL1
- nop
-.LL1:
- ret
- restore
-
- .size SharedStub, .-SharedStub
- .type SharedStub, #function
diff --git a/www/mozilla/files/xptcstubs_ppc_netbsd.cpp b/www/mozilla/files/xptcstubs_ppc_netbsd.cpp
deleted file mode 100644
index 4bb7aa280de..00000000000
--- a/www/mozilla/files/xptcstubs_ppc_netbsd.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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)
- */
-
-// Implement shared vtbl methods.
-
-#include "xptcprivate.h"
-
-// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
-// parameters and the first 8 floating point parameters in registers
-// (r3-r10 and f1-f8), no stack space is allocated for these by the
-// caller. The rest of the parameters are passed in the callers stack
-// area. The stack pointer has to retain 16-byte alignment, longlongs
-// and doubles are aligned on 8-byte boundaries.
-
-#define PARAM_BUFFER_COUNT 16
-#define GPR_COUNT 8
-#define FPR_COUNT 8
-
-// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
-//
-// - 'args[]' contains the arguments passed on stack
-// - 'gprData[]' contains the arguments passed in integer registers
-// - 'fprData[]' contains the arguments passed in floating point registers
-//
-// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
-// and then the method gets called.
-
-extern "C" nsresult
-PrepareAndDispatch(nsXPTCStubBase* self,
- PRUint32 methodIndex,
- PRUint32* args,
- PRUint32 *gprData,
- double *fprData)
-{
- nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
- nsXPTCMiniVariant* dispatchParams = NULL;
- nsIInterfaceInfo* iface_info = NULL;
- const nsXPTMethodInfo* info;
- PRUint32 paramCount;
- PRUint32 i;
- nsresult result = NS_ERROR_FAILURE;
-
- NS_ASSERTION(self,"no self");
-
- self->GetInterfaceInfo(&iface_info);
- NS_ASSERTION(iface_info,"no interface info");
- if (! iface_info)
- return NS_ERROR_UNEXPECTED;
-
- iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
- NS_ASSERTION(info,"no method info");
- if (! info)
- return NS_ERROR_UNEXPECTED;
-
- paramCount = info->GetParamCount();
-
- // setup variant array pointer
- if(paramCount > PARAM_BUFFER_COUNT)
- dispatchParams = new nsXPTCMiniVariant[paramCount];
- else
- dispatchParams = paramBuffer;
-
- NS_ASSERTION(dispatchParams,"no place for params");
- if (! dispatchParams)
- return NS_ERROR_OUT_OF_MEMORY;
-
- PRUint32* ap = args;
- PRUint32 gpr = 1; // skip one GPR register
- PRUint32 fpr = 0;
- PRUint32 tempu32;
- PRUint64 tempu64;
-
- for(i = 0; i < paramCount; i++) {
- const nsXPTParamInfo& param = info->GetParam(i);
- const nsXPTType& type = param.GetType();
- nsXPTCMiniVariant* dp = &dispatchParams[i];
-
- if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
- if (fpr < FPR_COUNT)
- dp->val.d = fprData[fpr++];
- else {
- if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack
- dp->val.d = *(double*) ap;
- ap += 2;
- if (gpr < GPR_COUNT)
- gpr += 2;
- }
- continue;
- }
- else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
- if (fpr < FPR_COUNT)
- dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles
- else {
- dp->val.f = *(float*) ap;
- ap += 1;
- if (gpr < GPR_COUNT)
- gpr += 1;
- }
- continue;
- }
- else if (!param.IsOut() && (type == nsXPTType::T_I64
- || type == nsXPTType::T_U64)) {
- if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
- if ((gpr + 1) < GPR_COUNT) {
- tempu64 = *(PRUint64*) &gprData[gpr];
- gpr += 2;
- }
- else {
- if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack
- tempu64 = *(PRUint64*) ap;
- ap += 2;
- }
- }
- else {
- if (gpr < GPR_COUNT)
- tempu32 = gprData[gpr++];
- else
- tempu32 = *ap++;
- }
-
- if(param.IsOut() || !type.IsArithmetic()) {
- dp->val.p = (void*) tempu32;
- continue;
- }
-
- switch(type) {
- case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break;
- case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break;
- case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break;
- case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break;
- case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break;
- case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break;
- case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break;
- case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break;
- case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break;
- case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break;
- case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break;
-
- default:
- NS_ASSERTION(0, "bad type");
- break;
- }
- }
-
- result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
-
- NS_RELEASE(iface_info);
-
- if (dispatchParams != paramBuffer)
- delete [] dispatchParams;
-
- return result;
-}
-
-// Load r11 with the constant 'n' and branch to SharedStub().
-//
-// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
-// however, it's quick, dirty, and'll break when the ABI changes on
-// us, which is what we want ;-).
-
-#define STUB_ENTRY(n) \
-__asm__ ( \
- ".section \".text\" \n\t" \
- ".align 2 \n\t" \
- ".globl Stub"#n"__14nsXPTCStubBase \n\t" \
- ".type Stub"#n"__14nsXPTCStubBase,@function \n\n" \
- \
-"Stub"#n"__14nsXPTCStubBase: \n\t" \
- "li 11,"#n" \n\t" \
- "b SharedStub@local \n" \
-);
-
-#define SENTINEL_ENTRY(n) \
-nsresult nsXPTCStubBase::Sentinel##n() \
-{ \
- NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
- return NS_ERROR_NOT_IMPLEMENTED; \
-}
-
-#include "xptcstubsdef.inc"
diff --git a/www/mozilla/files/xptcstubs_sparc_netbsd.cpp b/www/mozilla/files/xptcstubs_sparc_netbsd.cpp
deleted file mode 100644
index 787b2775ed8..00000000000
--- a/www/mozilla/files/xptcstubs_sparc_netbsd.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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):
- */
-
-/* Implement shared vtbl methods. */
-
-#include "xptcprivate.h"
-
-#if defined(sparc) || defined(__sparc__)
-
-extern "C" nsresult
-PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, uint32* args)
-{
-
- typedef struct {
- uint32 hi;
- uint32 lo;
- } DU; // have to move 64 bit entities as 32 bit halves since
- // stack slots are not guaranteed 16 byte aligned
-
-#define PARAM_BUFFER_COUNT 16
-
- nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
- nsXPTCMiniVariant* dispatchParams = NULL;
- nsIInterfaceInfo* iface_info = NULL;
- const nsXPTMethodInfo* info;
- PRUint8 paramCount;
- PRUint8 i;
- nsresult result = NS_ERROR_FAILURE;
-
- NS_ASSERTION(self,"no self");
-
- self->GetInterfaceInfo(&iface_info);
- NS_ASSERTION(iface_info,"no interface info");
-
- iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
- NS_ASSERTION(info,"no interface info");
-
- paramCount = info->GetParamCount();
-
- // setup variant array pointer
- if(paramCount > PARAM_BUFFER_COUNT)
- dispatchParams = new nsXPTCMiniVariant[paramCount];
- else
- dispatchParams = paramBuffer;
- NS_ASSERTION(dispatchParams,"no place for params");
-
- PRUint32* ap = args;
- for(i = 0; i < paramCount; i++, ap++)
- {
- const nsXPTParamInfo& param = info->GetParam(i);
- const nsXPTType& type = param.GetType();
- nsXPTCMiniVariant* dp = &dispatchParams[i];
-
- if(param.IsOut() || !type.IsArithmetic())
- {
- dp->val.p = (void*) *ap;
- continue;
- }
- // else
- switch(type)
- {
- case nsXPTType::T_I8 : dp->val.i8 = *((PRInt32*) ap); break;
- case nsXPTType::T_I16 : dp->val.i16 = *((PRInt32*) ap); break;
- case nsXPTType::T_I32 : dp->val.i32 = *((PRInt32*) ap); break;
- case nsXPTType::T_DOUBLE :
- case nsXPTType::T_U64 :
- case nsXPTType::T_I64 : ((DU *)dp)->hi = ((DU *)ap)->hi;
- ((DU *)dp)->lo = ((DU *)ap)->lo;
- ap++;
- break;
- case nsXPTType::T_U8 : dp->val.u8 = *((PRUint32*) ap); break;
- case nsXPTType::T_U16 : dp->val.u16 = *((PRUint32*)ap); break;
- case nsXPTType::T_U32 : dp->val.u32 = *((PRUint32*)ap); break;
- case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
- case nsXPTType::T_BOOL : dp->val.b = *((PRBool*) ap); break;
- case nsXPTType::T_CHAR : dp->val.c = *((PRUint32*) ap); break;
- case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt32*) ap); break;
- default:
- NS_ASSERTION(0, "bad type");
- break;
- }
- }
-
- result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
-
- NS_RELEASE(iface_info);
-
- if(dispatchParams != paramBuffer)
- delete [] dispatchParams;
-
- return result;
-}
-
-extern "C" int SharedStub(int, int*);
-
-#define STUB_ENTRY(n) \
-nsresult nsXPTCStubBase::Stub##n() \
-{ \
- int dummy; /* defeat tail-call optimization */ \
- return SharedStub(n, &dummy); \
-}
-
-#define SENTINEL_ENTRY(n) \
-nsresult nsXPTCStubBase::Sentinel##n() \
-{ \
- NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
- return NS_ERROR_NOT_IMPLEMENTED; \
-}
-
-#include "xptcstubsdef.inc"
-
-#endif /* sparc || __sparc__ */