diff -ur mozilla-firefox-2.0.0.5-cvs/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla-firefox-2.0.0.5-local/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s --- mozilla-firefox-2.0.0.5-cvs/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2007-07-24 23:43:34.000000000 +0200 +++ mozilla-firefox-2.0.0.5-local/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2007-07-24 23:51:42.000000000 +0200 @@ -6,6 +6,9 @@ framesz: .equ 128 +; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex, +; PRUint32 paramCount, nsXPTCVariant* params); + .globl XPTC_InvokeByIndex .type XPTC_InvokeByIndex, @function @@ -31,6 +34,14 @@ 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 @@ -60,6 +71,13 @@ 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 @@ -82,9 +100,17 @@ 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 diff -ur mozilla-firefox-2.0.0.5-cvs/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla-firefox-2.0.0.5-local/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s --- mozilla-firefox-2.0.0.5-cvs/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2007-07-24 23:43:34.000000000 +0200 +++ mozilla-firefox-2.0.0.5-local/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2007-07-24 23:51:42.000000000 +0200 @@ -46,6 +46,13 @@ 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