summaryrefslogtreecommitdiffstats
path: root/xulrunner-2.0-64bit-big-endian.patch
diff options
context:
space:
mode:
Diffstat (limited to 'xulrunner-2.0-64bit-big-endian.patch')
-rw-r--r--xulrunner-2.0-64bit-big-endian.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/xulrunner-2.0-64bit-big-endian.patch b/xulrunner-2.0-64bit-big-endian.patch
new file mode 100644
index 0000000..d1d63e8
--- /dev/null
+++ b/xulrunner-2.0-64bit-big-endian.patch
@@ -0,0 +1,31 @@
+diff -up xulrunner-2.0/mozilla-central/js/src/jsval.h.s390 xulrunner-2.0/mozilla-central/js/src/jsval.h
+--- xulrunner-2.0/mozilla-central/js/src/jsval.h.s390 2010-11-15 10:43:49.000000000 +0100
++++ xulrunner-2.0/mozilla-central/js/src/jsval.h 2010-11-15 10:45:41.000000000 +0100
+@@ -331,6 +331,27 @@ typedef union jsval_layout
+ double asDouble;
+ void *asPtr;
+ } jsval_layout;
++# elif JS_BITS_PER_WORD == 64
++typedef union jsval_layout
++{
++ uint64 asBits;
++#ifndef _WIN64
++ /* MSVC does not pack these correctly :-( */
++ struct {
++ uint64 payload47 : 47;
++ JSValueTag tag : 17;
++ } debugView;
++#endif
++ struct {
++ union {
++ int32 i32;
++ uint32 u32;
++ JSWhyMagic why;
++ } payload;
++ } s;
++ double asDouble;
++ void *asPtr;
++} jsval_layout;
+ # endif /* JS_BITS_PER_WORD */
+ #endif /* defined(IS_LITTLE_ENDIAN) */
+