7417431
Index: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp
7417431
===================================================================
7417431
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp,v
7417431
retrieving revision 1.1
7417431
diff -u -p -r1.1 xptcinvoke_linux_s390.cpp
7417431
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp	27 Jan 2003 21:52:51 -0000	1.1
7417431
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp	14 Oct 2004 09:14:05 -0000
7417431
@@ -184,6 +184,8 @@ invoke_copy_to_stack(PRUint32 paramCount
7417431
     }
7417431
 }
7417431
 
7417431
+volatile register void* r14 asm("r14");
7417431
+
7417431
 XPTC_PUBLIC_API(nsresult)
7417431
 XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
7417431
                    PRUint32 paramCount, nsXPTCVariant* params)
7417431
@@ -197,6 +199,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
7417431
     PRUint32 overflow = invoke_count_words (paramCount, params);
7417431
     PRUint32 result;
7417431
 
7417431
+    volatile void* sav_r14 = r14;
7417431
+
7417431
     __asm__ __volatile__
7417431
     (
7417431
         "lr    7,15\n\t"
7417431
@@ -233,6 +237,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
7417431
           "a" (method)
7417431
         : "2", "3", "4", "5", "6", "7", "memory"
7417431
     );
7417431
+
7417431
+    r14 = sav_r14;
7417431
   
7417431
     return result;
7417431
 }    
7417431
Index: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp
7417431
===================================================================
7417431
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp,v
7417431
retrieving revision 1.1
7417431
diff -u -p -r1.1 xptcinvoke_linux_s390x.cpp
7417431
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp	27 Jan 2003 21:52:51 -0000	1.1
7417431
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp	14 Oct 2004 09:14:12 -0000
7417431
@@ -178,6 +178,8 @@ invoke_copy_to_stack(PRUint32 paramCount
7417431
     }
7417431
 }
7417431
 
7417431
+volatile register void* r14 asm("r14");
7417431
+
7417431
 XPTC_PUBLIC_API(nsresult)
7417431
 XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
7417431
                    PRUint32 paramCount, nsXPTCVariant* params)
7417431
@@ -191,6 +193,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
7417431
     PRUint64 overflow = invoke_count_words (paramCount, params);
7417431
     PRUint64 result;
7417431
 
7417431
+    volatile void* sav_r14 = r14;
7417431
+
7417431
     __asm__ __volatile__
7417431
     (
7417431
         "lgr    7,15\n\t"
7417431
@@ -229,6 +233,8 @@ XPTC_InvokeByIndex(nsISupports* that, PR
7417431
           "a" (method)
7417431
         : "2", "3", "4", "5", "6", "7", "memory"
7417431
     );
7417431
+
7417431
+    r14 = sav_r14;
7417431
   
7417431
     return result;
7417431
 }    
7417431
Index: xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp
7417431
===================================================================
7417431
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp,v
7417431
retrieving revision 1.1
7417431
diff -u -p -r1.1 xptcstubs_linux_s390.cpp
7417431
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp	27 Jan 2003 21:52:52 -0000	1.1
7417431
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp	14 Oct 2004 09:14:22 -0000
7417431
@@ -177,7 +177,7 @@ nsresult nsXPTCStubBase::Stub##n() \
7417431
                               \
7417431
     __asm__ __volatile__      \
7417431
     (                         \
7417431
-        "l     %0,0(15)\n\t"  \
7417431
+        "lr    %0,15\n\t"     \
7417431
         "ahi   %0,96\n\t"     \
7417431
         "stm   3,6,0(%3)\n\t" \
7417431
         "std   0,%1\n\t"      \
7417431
Index: xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp
7417431
===================================================================
7417431
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp,v
7417431
retrieving revision 1.1
7417431
diff -u -p -r1.1 xptcstubs_linux_s390x.cpp
7417431
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp	27 Jan 2003 21:52:52 -0000	1.1
7417431
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp	14 Oct 2004 09:14:26 -0000
7417431
@@ -177,7 +177,7 @@ nsresult nsXPTCStubBase::Stub##n() \
7417431
                               \
7417431
     __asm__ __volatile__      \
7417431
     (                         \
7417431
-        "lg     %0,0(15)\n\t" \
7417431
+        "lgr    %0,15\n\t"    \
7417431
         "aghi   %0,160\n\t"   \
7417431
         "stmg   3,6,0(%5)\n\t"\
7417431
         "std    0,%1\n\t"     \