summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Martin <gmsoft@gentoo.org>2004-12-22 21:59:33 +0000
committerGuy Martin <gmsoft@gentoo.org>2004-12-22 21:59:33 +0000
commit62d77e742dd5d3ea6f4a2df83a889c9078f4260d (patch)
tree46c372aaec29a9cf1add58d693d1b7bb0b5f79e6 /net-www/mozilla/files
parentForcing --enable-optimize=-O0 on hppa. (diff)
downloadhistorical-62d77e742dd5d3ea6f4a2df83a889c9078f4260d.tar.gz
historical-62d77e742dd5d3ea6f4a2df83a889c9078f4260d.tar.bz2
historical-62d77e742dd5d3ea6f4a2df83a889c9078f4260d.zip
Added hppa support.
Diffstat (limited to 'net-www/mozilla/files')
-rw-r--r--net-www/mozilla/files/mozilla-hppa.patch232
1 files changed, 232 insertions, 0 deletions
diff --git a/net-www/mozilla/files/mozilla-hppa.patch b/net-www/mozilla/files/mozilla-hppa.patch
new file mode 100644
index 000000000000..f6171cf77eb4
--- /dev/null
+++ b/net-www/mozilla/files/mozilla-hppa.patch
@@ -0,0 +1,232 @@
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:37:00.503842544 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:41:49.439917584 +0000
+@@ -167,6 +167,19 @@
+ endif
+ endif
+
++#
++# Linux/HPPA/gcc
++#
++ifeq ($(OS_ARCH),Linux)
++ifneq (,$(filter parisc parisc64,$(OS_TEST)))
++ifeq ($(CC),gcc)
++CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
++ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
++endif
++endif
++endif
++
++
+ ######################################################################
+ # M68k
+ ######################################################################
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2004-12-21 13:39:03.390160984 +0000
+@@ -0,0 +1,128 @@
++
++ .LEVEL 1.1
++ .text
++ .align 4
++
++framesz:
++ .equ 128
++
++; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex,
++; PRUint32 paramCount, nsXPTCVariant* params);
++
++.globl XPTC_InvokeByIndex
++ .type XPTC_InvokeByIndex, @function
++
++
++XPTC_InvokeByIndex:
++ .PROC
++ .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
++ .ENTRY
++
++ ; frame marker takes 48 bytes,
++ ; register spill area takes 8 bytes,
++ ; local stack area takes 72 bytes result in 128 bytes total
++
++ STW %rp,-20(%sp)
++ STW,MA %r3,128(%sp)
++
++ LDO -framesz(%r30),%r28
++ STW %r28,-4(%r30) ; save previous sp
++ STW %r19,-32(%r30)
++
++ STW %r26,-36-framesz(%r30) ; save argument registers in
++ STW %r25,-40-framesz(%r30) ; in PREVIOUS frame
++ STW %r24,-44-framesz(%r30) ;
++ STW %r23,-48-framesz(%r30) ;
++
++; B,L .+8,%r2
++; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1
++; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1
++;$PIC_pcrel$1
++; LDSID (%r1),%r31
++;$PIC_pcrel$2
++; MTSP %r31,%sr0
++
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
++ BL invoke_count_bytes,%r31
++ COPY %r31,%r2
++
++ CMPIB,>= 0,%r28, .+76
++ COPY %r30,%r3 ; copy stack ptr to saved stack ptr
++ ADD %r30,%r28,%r30 ; extend stack frame
++ LDW -4(%r3),%r28 ; move frame
++ STW %r28,-4(%r30)
++ LDW -8(%r3),%r28
++ STW %r28,-8(%r30)
++ LDW -12(%r3),%r28
++ STW %r28,-12(%r30)
++ LDW -16(%r3),%r28
++ STW %r28,-16(%r30)
++ LDW -20(%r3),%r28
++ STW %r28,-20(%r30)
++ LDW -24(%r3),%r28
++ STW %r28,-24(%r30)
++ LDW -28(%r3),%r28
++ STW %r28,-28(%r30)
++ LDW -32(%r3),%r28
++ STW %r28,-32(%r30)
++
++ LDO -40(%r30),%r26 ; load copy address
++ LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments
++ LDW -48-framesz(%r3),%r24 ;
++
++ LDW -32(%r30),%r19 ; shared lib call destroys r19; reload
++; B,L .+8,%r2
++; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1
++; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1
++;$PIC_pcrel$3
++; LDSID (%r1),%r31
++;$PIC_pcrel$4
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
++ BL invoke_copy_to_stack,%r31
++ COPY %r31,%r2
++
++ LDO -48(%r30),%r20
++ EXTRW,U,= %r28,31,1,%r22
++ FLDD 0(%r20),%fr7 ; load double arg 1
++ EXTRW,U,= %r28,30,1,%r22
++ FLDW 8(%r20),%fr5L ; load float arg 1
++ EXTRW,U,= %r28,29,1,%r22
++ FLDW 4(%r20),%fr6L ; load float arg 2
++ EXTRW,U,= %r28,28,1,%r22
++ FLDW 0(%r20),%fr7L ; load float arg 3
++
++ LDW -36-framesz(%r3),%r26 ; load ptr to 'that'
++ LDW -40(%r30),%r25 ; load the rest of dispatch argument registers
++ LDW -44(%r30),%r24
++ LDW -48(%r30),%r23
++
++ LDW -36-framesz(%r3),%r20 ; load vtable addr
++ LDW -40-framesz(%r3),%r28 ; load index
++ LDW 0(%r20),%r20 ; follow vtable
++; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16)
++ SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry
++ LDW 0(%r28),%r22 ; load vtable entry
++
++; B,L .+8,%r2
++; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1
++; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1
++;$PIC_pcrel$5
++; LDSID (%r1),%r31
++;$PIC_pcrel$6
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
++ BL $$dyncall,%r31
++ COPY %r31,%r2
++
++ LDW -32(%r30),%r19
++ COPY %r3,%r30 ; restore saved stack ptr
++
++ LDW -148(%sp),%rp
++ LDWM -128(%sp),%r3
++ BV,N (%rp)
++ NOP
++ .EXIT
++ .PROCEND ;in=23,24,25,26;
++ .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
++
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2004-12-21 13:39:03.392160680 +0000
+@@ -0,0 +1,73 @@
++ .LEVEL 1.1
++ .TEXT
++ .ALIGN 4
++
++curframesz:
++ .EQU 128
++
++
++; SharedStub has stack size of 128 bytes
++
++lastframesz:
++ .EQU 64
++
++; the StubN C++ function has a small stack size of 64 bytes
++
++
++.globl SharedStub
++ .type SharedStub, @function
++
++SharedStub:
++ .PROC
++ .CALLINFO CALLER,FRAME=80,SAVE_RP
++
++ .ENTRY
++ STW %rp,-20(%sp)
++ LDO 128(%sp),%sp
++
++ STW %r19,-32(%r30)
++ STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame
++
++ LDO -80(%r30),%r28
++ FSTD,MA %fr5,8(%r28) ; save darg0
++ FSTD,MA %fr7,8(%r28) ; save darg1
++ FSTW,MA %fr4L,4(%r28) ; save farg0
++ FSTW,MA %fr5L,4(%r28) ; save farg1
++ FSTW,MA %fr6L,4(%r28) ; save farg2
++ FSTW,MA %fr7L,4(%r28) ; save farg3
++
++ ; Former value of register 26 is already properly saved by StubN,
++ ; but register 25-23 are not because of the arguments mismatch
++ STW %r25,-40-curframesz-lastframesz(%r30) ; save r25
++ STW %r24,-44-curframesz-lastframesz(%r30) ; save r24
++ STW %r23,-48-curframesz-lastframesz(%r30) ; save r23
++ COPY %r26,%r25 ; method index is arg1
++ LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
++ LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
++ LDO -80(%r30),%r23 ; floating args is arg3
++
++; BL .+8,%r2
++; ADDIL L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
++; LDO R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
++;$PIC_pcrel$0
++; LDSID (%r1),%r31
++;$PIC_pcrel$1
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
++ BL PrepareAndDispatch, %r31
++ COPY %r31,%r2
++
++ LDW -32(%r30),%r19
++
++ LDW -148(%sp),%rp
++ LDO -128(%sp),%sp
++
++
++ BV,N (%rp)
++ NOP
++ NOP
++
++ .EXIT
++ .PROCEND ;in=26;out=28;
++
++ .SIZE SharedStub, .-SharedStub