diff options
Diffstat (limited to 'firefox-1.0-xptcall-s390.patch')
-rw-r--r-- | firefox-1.0-xptcall-s390.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/firefox-1.0-xptcall-s390.patch b/firefox-1.0-xptcall-s390.patch new file mode 100644 index 0000000..2de02ee --- /dev/null +++ b/firefox-1.0-xptcall-s390.patch @@ -0,0 +1,107 @@ +diff -ur mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla-xx/xpcom/reflect/xptcall/src/md/unix/Makefile.in +--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-04-22 22:50:05.000000000 +0200 ++++ mozilla-xx/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-03 11:19:41.560694658 +0100 +@@ -341,10 +341,12 @@ + # + ifeq ($(OS_ARCH)$(OS_TEST),Linuxs390) + CPPSRCS := xptcinvoke_linux_s390.cpp xptcstubs_linux_s390.cpp ++CXXFLAGS += -fno-strict-aliasing -fno-inline -fomit-frame-pointer -mbackchain + endif + + ifeq ($(OS_ARCH)$(OS_TEST),Linuxs390x) + CPPSRCS := xptcinvoke_linux_s390x.cpp xptcstubs_linux_s390x.cpp ++CXXFLAGS += -fno-strict-aliasing -fno-inline -fomit-frame-pointer -mbackchain + endif + + +diff -ur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp 2004-12-03 12:18:27.110694658 +0100 ++++ mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp 2004-12-03 12:27:05.100694658 +0100 +@@ -184,8 +184,6 @@ + } + } + +-volatile register void* r14 asm("r14"); +- + XPTC_PUBLIC_API(nsresult) + XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params) +@@ -199,8 +197,6 @@ + PRUint32 overflow = invoke_count_words (paramCount, params); + PRUint32 result; + +- volatile void* sav_r14 = r14; +- + __asm__ __volatile__ + ( + "lr 7,15\n\t" +@@ -235,10 +231,8 @@ + "a" (invoke_copy_to_stack), + "a" (that), + "a" (method) +- : "2", "3", "4", "5", "6", "7", "memory" ++ : "2", "3", "4", "5", "6", "7", "14", "cc", "memory", "%f0", "%f2" + ); +- +- r14 = sav_r14; + + return result; + } +diff -ur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp 2004-12-03 12:18:27.110694658 +0100 ++++ mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp 2004-12-03 12:26:44.500694658 +0100 +@@ -178,8 +178,6 @@ + } + } + +-volatile register void* r14 asm("r14"); +- + XPTC_PUBLIC_API(nsresult) + XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params) +@@ -193,8 +191,6 @@ + PRUint64 overflow = invoke_count_words (paramCount, params); + PRUint64 result; + +- volatile void* sav_r14 = r14; +- + __asm__ __volatile__ + ( + "lgr 7,15\n\t" +@@ -231,10 +227,9 @@ + "a" (invoke_copy_to_stack), + "a" (that), + "a" (method) +- : "2", "3", "4", "5", "6", "7", "memory" ++ : "2", "3", "4", "5", "6", "7", "14", "cc", "memory", ++ "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7" + ); +- +- r14 = sav_r14; + + return result; + } +diff -ur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp 2004-12-03 12:18:27.110694658 +0100 ++++ mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390.cpp 2004-12-03 11:16:55.400694658 +0100 +@@ -177,7 +177,7 @@ + \ + __asm__ __volatile__ \ + ( \ +- "lr %0,15\n\t" \ ++ "l %0,0(15)\n\t" \ + "ahi %0,96\n\t" \ + "stm 3,6,0(%3)\n\t" \ + "std 0,%1\n\t" \ +diff -ur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp 2004-12-03 12:18:27.110694658 +0100 ++++ mozilla-xx/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_s390x.cpp 2004-12-03 11:17:16.360694658 +0100 +@@ -177,7 +177,7 @@ + \ + __asm__ __volatile__ \ + ( \ +- "lgr %0,15\n\t" \ ++ "lg %0,0(15)\n\t" \ + "aghi %0,160\n\t" \ + "stmg 3,6,0(%5)\n\t"\ + "std 0,%1\n\t" \ |