diff options
author | 2004-12-22 21:59:33 +0000 | |
---|---|---|
committer | 2004-12-22 21:59:33 +0000 | |
commit | 62d77e742dd5d3ea6f4a2df83a889c9078f4260d (patch) | |
tree | 46c372aaec29a9cf1add58d693d1b7bb0b5f79e6 /net-www/mozilla/files | |
parent | Forcing --enable-optimize=-O0 on hppa. (diff) | |
download | historical-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.patch | 232 |
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 |