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