rpms/firefox/FC-6 firefox-1.5-ppc64.patch,1.1.2.3,1.1.2.4
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Thu Nov 23 08:42:29 UTC 2006
Author: dwmw2
Update of /cvs/dist/rpms/firefox/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv4564
Modified Files:
Tag: private-firefox-1_5_0_8-multilib-fix-branch
firefox-1.5-ppc64.patch
Log Message:
Clean up and document stack allocation
firefox-1.5-ppc64.patch:
mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s | 153 ++++++
mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s | 101 ++++
xpcom/reflect/xptcall/src/md/unix/Makefile.in | 5
xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp | 132 +++++
xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp | 247 ++++++++++
5 files changed, 638 insertions(+)
Index: firefox-1.5-ppc64.patch
===================================================================
RCS file: /cvs/dist/rpms/firefox/FC-6/Attic/firefox-1.5-ppc64.patch,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- firefox-1.5-ppc64.patch 22 Nov 2006 18:04:12 -0000 1.1.2.3
+++ firefox-1.5-ppc64.patch 23 Nov 2006 08:42:26 -0000 1.1.2.4
@@ -19,7 +19,7 @@
diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-21 14:01:45.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-22 10:43:26.000000000 +0000
-@@ -0,0 +1,149 @@
+@@ -0,0 +1,153 @@
+// -*- Mode: Asm -*-
+//
+// The contents of this file are subject to the Netscape Public
@@ -91,13 +91,17 @@
+
+ // Allocate stack frame with space for params. Since at least the
+ // first 7 parameters (not including 'that') will be in registers,
-+ // we don't actually need stack space for those. Start by rounding
-+ // down to make sure the stack remains 16-byte aligned.
-+
-+ rldicr r7,r5,3,59 // r7 = (r5 << 3) & ~15
-+ addi r7,r7,128+(18*8) // Standard frame, 7 dwords for GPR,
-+ // 13 dwords for FPR, 3 for r29-r31,
-+ // less 5 of the extra unused params
++ // we don't actually need stack space for those. We must ensure
++ // that the stack remains 16-byte aligned.
++ //
++ // | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV |
++ // | |(params)........| regs | regs | regs |
++ // (r1)...........(+112)....(+128)
++ // (-23*8).(-16*8).(-3*8)..(r31)
++
++ // +stack frame, -unused stack params, +regs storage, +1 for alignment
++ addi r7,r5,((112/8)-7+7+13+3+1)
++ rldicr r7,r7,3,59 // multiply by 8 and mask with ~15
+ neg r7,r7
+ stdux r1,r1,r7
+
@@ -110,9 +114,9 @@
+ // r7 (d) has to be r1+112 -- where parameters are passed on the stack.
+ // r3, r4 are above that, easier to address from r31 than from r1
+
-+ subi r3,r31,(24*8)
-+ subi r4,r31,(17*8)
-+ addi r7,r1,112
++ subi r3,r31,(23*8) // r3 --> GPRS
++ subi r4,r31,(16*8) // r4 --> FPRS
++ addi r7,r1,112 // r7 --> params
+ bl invoke_copy_to_stack
+
+ // Set up to invoke function
@@ -132,27 +136,27 @@
+ ld r2,8(r9) // TOC pointer from fd.
+
+ // Load FP and GP registers as required
-+ ld r4, -(24*8)(r31)
-+ ld r5, -(23*8)(r31)
-+ ld r6, -(22*8)(r31)
-+ ld r7, -(21*8)(r31)
-+ ld r8, -(20*8)(r31)
-+ ld r9, -(19*8)(r31)
-+ ld r10, -(18*8)(r31)
-+
-+ lfd f1, -(17*8)(r31)
-+ lfd f2, -(16*8)(r31)
-+ lfd f3, -(15*8)(r31)
-+ lfd f4, -(14*8)(r31)
-+ lfd f5, -(13*8)(r31)
-+ lfd f6, -(12*8)(r31)
-+ lfd f7, -(11*8)(r31)
-+ lfd f8, -(10*8)(r31)
-+ lfd f9, -(9*8)(r31)
-+ lfd f10, -(8*8)(r31)
-+ lfd f11, -(7*8)(r31)
-+ lfd f12, -(6*8)(r31)
-+ lfd f13, -(5*8)(r31)
++ ld r4, -(23*8)(r31)
++ ld r5, -(22*8)(r31)
++ ld r6, -(21*8)(r31)
++ ld r7, -(20*8)(r31)
++ ld r8, -(19*8)(r31)
++ ld r9, -(18*8)(r31)
++ ld r10, -(17*8)(r31)
++
++ lfd f1, -(16*8)(r31)
++ lfd f2, -(15*8)(r31)
++ lfd f3, -(14*8)(r31)
++ lfd f4, -(13*8)(r31)
++ lfd f5, -(12*8)(r31)
++ lfd f6, -(11*8)(r31)
++ lfd f7, -(10*8)(r31)
++ lfd f8, -(9*8)(r31)
++ lfd f9, -(8*8)(r31)
++ lfd f10, -(7*8)(r31)
++ lfd f11, -(6*8)(r31)
++ lfd f12, -(5*8)(r31)
++ lfd f13, -(4*8)(r31)
+
+ bctrl // Do it
+
@@ -169,7 +173,6 @@
+
+ /* Magic indicating no need for an executable stack */
+ .section .note.GNU-stack, "", @progbits ; .previous
-unchanged:
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 2006-11-21 17:00:06.000000000 +0000
@@ -0,0 +1,132 @@
More information about the fedora-cvs-commits
mailing list