aboutsummaryrefslogtreecommitdiffstats
path: root/src/m
diff options
context:
space:
mode:
authorPaul Eggert2011-11-10 00:14:27 -0800
committerPaul Eggert2011-11-10 00:14:27 -0800
commit6a0bf43d7c5961297aa5024aec534e5bab73c8af (patch)
treeb823825dae7da76be667a0ddb157bff2bd029ac7 /src/m
parent9a4de110224cc0ea32a9c680db3f4355484236a6 (diff)
downloademacs-6a0bf43d7c5961297aa5024aec534e5bab73c8af.tar.gz
emacs-6a0bf43d7c5961297aa5024aec534e5bab73c8af.zip
Standardize on VIRT_ADDR_VARIES behavior; otherwise, valgrind
does not work on some platforms. Problem reported by Andreas Schwab in <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>. * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES is set, removing the need for VIRT_ADDRESS_VARIES. (PURE_P): Use a more-efficient implementation that needs just one comparison, not two: on x86-64 with GCC 4.6.2, this cut down the number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge) to 4 (xorl, subq, cmpq, setbe). * alloc.c (pure): Always extern now, since that's the VIRT_ADDR_VARIES behavior. (PURE_POINTER_P): Use a single comparison, not two, for consistency with the new puresize.h. * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed. * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h: Remove VIRT_ADDR_VARIES no longer needed.
Diffstat (limited to 'src/m')
-rw-r--r--src/m/ibms390.h11
-rw-r--r--src/m/intel386.h2
-rw-r--r--src/m/template.h8
3 files changed, 3 insertions, 18 deletions
diff --git a/src/m/ibms390.h b/src/m/ibms390.h
index c309035dc5c..7269d416a48 100644
--- a/src/m/ibms390.h
+++ b/src/m/ibms390.h
@@ -17,11 +17,6 @@ GNU General Public License for more details.
17You should have received a copy of the GNU General Public License 17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20/* This file is a placeholder -- it does not contain any definitions.
21/* Define VIRT_ADDR_VARIES if the virtual addresses of 21 At some point we should probably fix this by removing the file
22 pure and impure space as loaded can vary, and even their 22 and removing all uses of it. */
23 relative order cannot be relied on.
24
25 Otherwise Emacs assumes that text space precedes data space,
26 numerically. */
27#define VIRT_ADDR_VARIES
diff --git a/src/m/intel386.h b/src/m/intel386.h
index 16f0645715c..114b7fef963 100644
--- a/src/m/intel386.h
+++ b/src/m/intel386.h
@@ -19,7 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20
21#ifdef WINDOWSNT 21#ifdef WINDOWSNT
22#define VIRT_ADDR_VARIES
23#define DATA_START get_data_start () 22#define DATA_START get_data_start ()
24#endif 23#endif
25 24
@@ -28,4 +27,3 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
28/* we cannot get the maximum address for brk */ 27/* we cannot get the maximum address for brk */
29#define ULIMIT_BREAK_VALUE (32*1024*1024) 28#define ULIMIT_BREAK_VALUE (32*1024*1024)
30#endif 29#endif
31
diff --git a/src/m/template.h b/src/m/template.h
index 54fb0da9521..38649e8ac6d 100644
--- a/src/m/template.h
+++ b/src/m/template.h
@@ -21,14 +21,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
21 does not define it automatically. 21 does not define it automatically.
22 Ones defined so far include m68k and many others */ 22 Ones defined so far include m68k and many others */
23 23
24/* Define VIRT_ADDR_VARIES if the virtual addresses of
25 pure and impure space as loaded can vary, and even their
26 relative order cannot be relied on.
27
28 Otherwise Emacs assumes that text space precedes data space,
29 numerically. */
30#define VIRT_ADDR_VARIES
31
32/* After adding support for a new machine, modify the large case 24/* After adding support for a new machine, modify the large case
33 statement in configure.in to recognize reasonable 25 statement in configure.in to recognize reasonable
34 configuration names, and add a description of the system to 26 configuration names, and add a description of the system to