summaryrefslogtreecommitdiff
path: root/mozilla-1.7.3-xptcall-s390.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1.7.3-xptcall-s390.patch')
-rw-r--r--mozilla-1.7.3-xptcall-s390.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/mozilla-1.7.3-xptcall-s390.patch b/mozilla-1.7.3-xptcall-s390.patch
new file mode 100644
index 0000000..995d352
--- /dev/null
+++ b/mozilla-1.7.3-xptcall-s390.patch
@@ -0,0 +1,100 @@
+Index: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp,v
+retrieving revision 1.1
+diff -u -p -r1.1 xptcinvoke_linux_s390.cpp
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp 27 Jan 2003 21:52:51 -0000 1.1
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp 14 Oct 2004 09:14:05 -0000
+@@ -184,6 +184,8 @@ invoke_copy_to_stack(PRUint32 paramCount
+ }
+ }
+
++volatile register void* r14 asm("r14");
++
+ XPTC_PUBLIC_API(nsresult)
+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params)
+@@ -197,6 +199,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
+ PRUint32 overflow = invoke_count_words (paramCount, params);
+ PRUint32 result;
+
++ volatile void* sav_r14 = r14;
++
+ __asm__ __volatile__
+ (
+ "lr 7,15\n\t"
+@@ -233,6 +237,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
+ "a" (method)
+ : "2", "3", "4", "5", "6", "7", "memory"
+ );
++
++ r14 = sav_r14;
+
+ return result;
+ }
+Index: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp,v
+retrieving revision 1.1
+diff -u -p -r1.1 xptcinvoke_linux_s390x.cpp
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp 27 Jan 2003 21:52:51 -0000 1.1
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp 14 Oct 2004 09:14:12 -0000
+@@ -178,6 +178,8 @@ invoke_copy_to_stack(PRUint32 paramCount
+ }
+ }
+
++volatile register void* r14 asm("r14");
++
+ XPTC_PUBLIC_API(nsresult)
+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params)
+@@ -191,6 +193,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
+ PRUint64 overflow = invoke_count_words (paramCount, params);
+ PRUint64 result;
+
++ volatile void* sav_r14 = r14;
++
+ __asm__ __volatile__
+ (
+ "lgr 7,15\n\t"
+@@ -229,6 +233,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
+ "a" (method)
+ : "2", "3", "4", "5", "6", "7", "memory"
+ );
++
++ r14 = sav_r14;
+
+ return result;
+ }
+Index: xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp,v
+retrieving revision 1.1
+diff -u -p -r1.1 xptcstubs_linux_s390.cpp
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp 27 Jan 2003 21:52:52 -0000 1.1
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp 14 Oct 2004 09:14:22 -0000
+@@ -177,7 +177,7 @@ nsresult nsXPTCStubBase::Stub##n() \
+ \
+ __asm__ __volatile__ \
+ ( \
+- "l %0,0(15)\n\t" \
++ "lr %0,15\n\t" \
+ "ahi %0,96\n\t" \
+ "stm 3,6,0(%3)\n\t" \
+ "std 0,%1\n\t" \
+Index: xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp,v
+retrieving revision 1.1
+diff -u -p -r1.1 xptcstubs_linux_s390x.cpp
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp 27 Jan 2003 21:52:52 -0000 1.1
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp 14 Oct 2004 09:14:26 -0000
+@@ -177,7 +177,7 @@ nsresult nsXPTCStubBase::Stub##n() \
+ \
+ __asm__ __volatile__ \
+ ( \
+- "lg %0,0(15)\n\t" \
++ "lgr %0,15\n\t" \
+ "aghi %0,160\n\t" \
+ "stmg 3,6,0(%5)\n\t"\
+ "std 0,%1\n\t" \
bgstack15