]> git.pld-linux.org Git - packages/nspr.git/blame - nspr-amd64.patch
- updated to 4.5.0-20040117 snap
[packages/nspr.git] / nspr-amd64.patch
CommitLineData
9dda54e2
JK
1diff -durN nspr-4.4.1.orig/mozilla/nsprpub/configure nspr-4.4.1/mozilla/nsprpub/configure
2--- nspr-4.4.1.orig/mozilla/nsprpub/configure 2003-11-25 01:09:04.000000000 +0100
3+++ nspr-4.4.1/mozilla/nsprpub/configure 2005-01-01 00:41:55.973908344 +0100
4@@ -3729,6 +3729,9 @@
5 ia64)
6 PR_MD_ASFILES=os_Linux_ia64.s
7 ;;
8+ x86_64)
9+ PR_MD_ASFILES=os_Linux_x86_64.s
10+ ;;
11 m68k)
12 CFLAGS="$CFLAGS -m68020-60"
13 CXXFLAGS="$CXXFLAGS -m68020-60"
14diff -durN nspr-4.4.1.orig/mozilla/nsprpub/configure.in nspr-4.4.1/mozilla/nsprpub/configure.in
15--- nspr-4.4.1.orig/mozilla/nsprpub/configure.in 2005-01-01 00:36:47.000000000 +0100
16+++ nspr-4.4.1/mozilla/nsprpub/configure.in 2005-01-01 00:41:55.971908648 +0100
17@@ -1218,6 +1218,9 @@
18 ia64)
19 PR_MD_ASFILES=os_Linux_ia64.s
20 ;;
21+ x86_64)
22+ PR_MD_ASFILES=os_Linux_x86_64.s
23+ ;;
24 m68k)
25 CFLAGS="$CFLAGS -m68020-60"
26 CXXFLAGS="$CXXFLAGS -m68020-60"
27diff -durN nspr-4.4.1.orig/mozilla/nsprpub/pr/include/md/_linux.cfg nspr-4.4.1/mozilla/nsprpub/pr/include/md/_linux.cfg
28--- nspr-4.4.1.orig/mozilla/nsprpub/pr/include/md/_linux.cfg 2003-01-23 18:03:19.000000000 +0100
29+++ nspr-4.4.1/mozilla/nsprpub/pr/include/md/_linux.cfg 2005-01-01 00:41:55.968909104 +0100
30@@ -182,6 +182,52 @@
31 #define PR_BYTES_PER_WORD_LOG2 3
32 #define PR_BYTES_PER_DWORD_LOG2 3
33
34+#elif defined(__x86_64__)
35+
36+#define IS_LITTLE_ENDIAN 1
37+#undef IS_BIG_ENDIAN
38+#define IS_64
39+
40+#define PR_BYTES_PER_BYTE 1
41+#define PR_BYTES_PER_SHORT 2
42+#define PR_BYTES_PER_INT 4
43+#define PR_BYTES_PER_INT64 8
44+#define PR_BYTES_PER_LONG 8
45+#define PR_BYTES_PER_FLOAT 4
46+#define PR_BYTES_PER_DOUBLE 8
47+#define PR_BYTES_PER_WORD 8
48+#define PR_BYTES_PER_DWORD 8
49+
50+#define PR_BITS_PER_BYTE 8
51+#define PR_BITS_PER_SHORT 16
52+#define PR_BITS_PER_INT 32
53+#define PR_BITS_PER_INT64 64
54+#define PR_BITS_PER_LONG 64
55+#define PR_BITS_PER_FLOAT 32
56+#define PR_BITS_PER_DOUBLE 64
57+#define PR_BITS_PER_WORD 64
58+
59+#define PR_BITS_PER_BYTE_LOG2 3
60+#define PR_BITS_PER_SHORT_LOG2 4
61+#define PR_BITS_PER_INT_LOG2 5
62+#define PR_BITS_PER_INT64_LOG2 6
63+#define PR_BITS_PER_LONG_LOG2 6
64+#define PR_BITS_PER_FLOAT_LOG2 5
65+#define PR_BITS_PER_DOUBLE_LOG2 6
66+#define PR_BITS_PER_WORD_LOG2 6
67+
68+#define PR_ALIGN_OF_SHORT 2
69+#define PR_ALIGN_OF_INT 4
70+#define PR_ALIGN_OF_LONG 8
71+#define PR_ALIGN_OF_INT64 8
72+#define PR_ALIGN_OF_FLOAT 4
73+#define PR_ALIGN_OF_DOUBLE 8
74+#define PR_ALIGN_OF_POINTER 8
75+#define PR_ALIGN_OF_WORD 8
76+
77+#define PR_BYTES_PER_WORD_LOG2 3
78+#define PR_BYTES_PER_DWORD_LOG2 3
79+
80 #elif defined(__mc68000__)
81
82 #undef IS_LITTLE_ENDIAN
83diff -durN nspr-4.4.1.orig/mozilla/nsprpub/pr/include/md/_linux.h nspr-4.4.1/mozilla/nsprpub/pr/include/md/_linux.h
84--- nspr-4.4.1.orig/mozilla/nsprpub/pr/include/md/_linux.h 2003-01-23 18:03:19.000000000 +0100
85+++ nspr-4.4.1/mozilla/nsprpub/pr/include/md/_linux.h 2005-01-01 00:41:55.968909104 +0100
86@@ -49,6 +49,8 @@
87 #define _PR_SI_ARCHITECTURE "alpha"
88 #elif defined(__ia64__)
89 #define _PR_SI_ARCHITECTURE "ia64"
90+#elif defined(__x86_64__)
91+#define _PR_SI_ARCHITECTURE "x86-64"
92 #elif defined(__mc68000__)
93 #define _PR_SI_ARCHITECTURE "m68k"
94 #elif defined(__sparc__)
95@@ -107,6 +109,19 @@
96 #define _MD_ATOMIC_SET _PR_ia64_AtomicSet
97 #endif
98
99+#if defined(__x86_64__)
100+#define _PR_HAVE_ATOMIC_OPS
101+#define _MD_INIT_ATOMIC()
102+extern PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val);
103+#define _MD_ATOMIC_INCREMENT _PR_x86_64_AtomicIncrement
104+extern PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val);
105+#define _MD_ATOMIC_DECREMENT _PR_x86_64_AtomicDecrement
106+extern PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val);
107+#define _MD_ATOMIC_ADD _PR_x86_64_AtomicAdd
108+extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
109+#define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
110+#endif
111+
112 #define USE_SETJMP
113 #if defined(__GLIBC__) && __GLIBC__ >= 2
114 #define _PR_POLL_AVAILABLE
115diff -durN nspr-4.4.1.orig/mozilla/nsprpub/pr/src/io/prprf.c nspr-4.4.1/mozilla/nsprpub/pr/src/io/prprf.c
116--- nspr-4.4.1.orig/mozilla/nsprpub/pr/src/io/prprf.c 2003-01-23 18:03:22.000000000 +0100
117+++ nspr-4.4.1/mozilla/nsprpub/pr/src/io/prprf.c 2005-01-01 00:41:55.969908952 +0100
118@@ -51,7 +51,10 @@
119 ** Note: on some platforms va_list is defined as an array,
120 ** and requires array notation.
121 */
122-#if (defined(LINUX) && defined(__powerpc__)) || \
123+#if (defined(LINUX) && defined(__x86_64__))
124+#include <stdarg.h>
125+#define VARARGS_ASSIGN(foo, bar) __va_copy((foo), (bar))
126+#elif (defined(LINUX) && defined(__powerpc__)) || \
127 (defined(LINUX) && defined(__s390__)) || \
128 (defined(LINUX) && defined(__s390x__)) || \
129 defined(WIN16) || defined(QNX) || \
130diff -durN nspr-4.4.1.orig/mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s nspr-4.4.1/mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s
131--- nspr-4.4.1.orig/mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 1970-01-01 01:00:00.000000000 +0100
132+++ nspr-4.4.1/mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2005-01-01 00:41:55.969908952 +0100
133@@ -0,0 +1,91 @@
134+/ -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
135+/
136+/ The contents of this file are subject to the Mozilla Public
137+/ License Version 1.1 (the "License"); you may not use this file
138+/ except in compliance with the License. You may obtain a copy of
139+/ the License at http://www.mozilla.org/MPL/
140+/
141+/ Software distributed under the License is distributed on an "AS
142+/ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
143+/ implied. See the License for the specific language governing
144+/ rights and limitations under the License.
145+/
146+/ The Original Code is the Netscape Portable Runtime (NSPR).
147+/
148+/ The Initial Developer of the Original Code is Netscape
149+/ Communications Corporation. Portions created by Netscape are
150+/ Copyright (C) 2000 Netscape Communications Corporation. All
151+/ Rights Reserved.
152+/
153+/ Contributor(s):
154+/
155+/ Alternatively, the contents of this file may be used under the
156+/ terms of the GNU General Public License Version 2 or later (the
157+/ "GPL"), in which case the provisions of the GPL are applicable
158+/ instead of those above. If you wish to allow use of your
159+/ version of this file only under the terms of the GPL and not to
160+/ allow others to use your version of this file under the MPL,
161+/ indicate your decision by deleting the provisions above and
162+/ replace them with the notice and other provisions required by
163+/ the GPL. If you do not delete the provisions above, a recipient
164+/ may use your version of this file under either the MPL or the
165+/ GPL.
166+/
167+
168+/ PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val)
169+/
170+/ Atomically increment the integer pointed to by 'val' and return
171+/ the result of the increment.
172+/
173+ .text
174+ .globl _PR_x86_64_AtomicIncrement
175+ .align 4
176+_PR_x86_64_AtomicIncrement:
177+ movl $1, %eax
178+ lock
179+ xaddl %eax, (%rdi)
180+ incl %eax
181+ ret
182+
183+/ PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val)
184+/
185+/ Atomically decrement the integer pointed to by 'val' and return
186+/ the result of the decrement.
187+/
188+ .text
189+ .globl _PR_x86_64_AtomicDecrement
190+ .align 4
191+_PR_x86_64_AtomicDecrement:
192+ movl $-1, %eax
193+ lock
194+ xaddl %eax, (%rdi)
195+ decl %eax
196+ ret
197+
198+/ PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval)
199+/
200+/ Atomically set the integer pointed to by 'val' to the new
201+/ value 'newval' and return the old value.
202+ .text
203+ .globl _PR_x86_64_AtomicSet
204+ .align 4
205+_PR_x86_64_AtomicSet:
206+ movl %esi, %eax
207+ lock
208+ xchgl %eax, (%rdi)
209+ ret
210+
211+/ PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val)
212+/
213+/ Atomically add 'val' to the integer pointed to by 'ptr'
214+/ and return the result of the addition.
215+/
216+ .text
217+ .globl _PR_x86_64_AtomicAdd
218+ .align 4
219+_PR_x86_64_AtomicAdd:
220+ movl %esi, %eax
221+ lock
222+ xaddl %eax, (%rdi)
223+ addl %esi, %eax
224+ ret
This page took 0.103908 seconds and 4 git commands to generate.