# HG changeset patch # User Chong Yidong # Date 1291414085 18000 # Node ID 03dcd8e4c9c7d110b99b81f5d3e8b6981322e112 # Parent 6da5e88812e50ce4ee6b7786c25bf96f34581241 Remove EXPLICIT_SIGN_EXTEND. * lisp.h (union Lisp_Object): Explicitly declare signedness of bit-field. (XINT): Remove variant for EXPLICIT_SIGN_EXTEND. * m/alpha.h (EXPLICIT_SIGN_EXTEND): Don't define. * m/amdx86-64.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/ia64.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/ibms390.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/ibms390x.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/iris4d.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/m68k.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/sparc.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/template.h (EXPLICIT_SIGN_EXTEND): Likewise. * m/hp800.h: Remove file. * m/mips.h: Remove file. diff -r 6da5e88812e5 -r 03dcd8e4c9c7 admin/CPP-DEFINES --- a/admin/CPP-DEFINES Fri Dec 03 17:06:51 2010 -0500 +++ b/admin/CPP-DEFINES Fri Dec 03 17:08:05 2010 -0500 @@ -62,7 +62,6 @@ SYSTEM_TYPE ** Machine specific macros, decribed in detail in src/m/template.h -EXPLICIT_SIGN_EXTEND LOAD_AVE_CVT LOAD_AVE_TYPE VIRT_ADDR_VARIES diff -r 6da5e88812e5 -r 03dcd8e4c9c7 admin/ChangeLog --- a/admin/ChangeLog Fri Dec 03 17:06:51 2010 -0500 +++ b/admin/ChangeLog Fri Dec 03 17:08:05 2010 -0500 @@ -1,3 +1,7 @@ +2010-12-03 Andreas Schwab + + * CPP-DEFINES (EXPLICIT_SIGN_EXTEND): Remove. + 2010-10-12 Glenn Morris * notes/nextstep: Move here from ../nextstep/DEV-NOTES. diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/ChangeLog --- a/src/ChangeLog Fri Dec 03 17:06:51 2010 -0500 +++ b/src/ChangeLog Fri Dec 03 17:08:05 2010 -0500 @@ -1,3 +1,20 @@ +2010-12-03 Andreas Schwab + + * lisp.h (union Lisp_Object): Explicitly declare signedness of + bit-field. + (XINT): Remove variant for EXPLICIT_SIGN_EXTEND. + * m/alpha.h (EXPLICIT_SIGN_EXTEND): Don't define. + * m/amdx86-64.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/ia64.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/ibms390.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/ibms390x.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/iris4d.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/m68k.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/sparc.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/template.h (EXPLICIT_SIGN_EXTEND): Likewise. + * m/hp800.h: Remove file. + * m/mips.h: Remove file. + 2010-12-03 Jan Djärv * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/lisp.h --- a/src/lisp.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/lisp.h Fri Dec 03 17:08:05 2010 -0500 @@ -267,7 +267,9 @@ struct { - EMACS_INT val : VALBITS; + /* Use explict signed, the signedness of a bit-field of type + int is implementation defined. */ + signed EMACS_INT val : VALBITS; enum Lisp_Type type : GCTYPEBITS; } s; struct @@ -290,7 +292,9 @@ struct { enum Lisp_Type type : GCTYPEBITS; - EMACS_INT val : VALBITS; + /* Use explict signed, the signedness of a bit-field of type + int is implementation defined. */ + signed EMACS_INT val : VALBITS; } s; struct { @@ -447,20 +451,8 @@ #endif #define XHASH(a) ((a).i) - #define XTYPE(a) ((enum Lisp_Type) (a).u.type) - -#ifdef EXPLICIT_SIGN_EXTEND -/* Make sure we sign-extend; compilers have been known to fail to do so. - We additionally cast to EMACS_INT since it seems that some compilers - have been known to fail to do so, even though the bitfield is declared - as EMACS_INT already. */ -#define XINT(a) ((((EMACS_INT) (a).s.val) << (BITS_PER_EMACS_INT - VALBITS)) \ - >> (BITS_PER_EMACS_INT - VALBITS)) -#else #define XINT(a) ((a).s.val) -#endif /* EXPLICIT_SIGN_EXTEND */ - #define XUINT(a) ((a).u.val) #ifdef USE_LSB_TAG diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/alpha.h --- a/src/m/alpha.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/alpha.h Fri Dec 03 17:08:05 2010 -0500 @@ -30,13 +30,6 @@ /* __alpha defined automatically */ -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/amdx86-64.h --- a/src/m/amdx86-64.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/amdx86-64.h Fri Dec 03 17:08:05 2010 -0500 @@ -31,13 +31,6 @@ #define EMACS_INT long #define EMACS_UINT unsigned long -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/hp800.h --- a/src/m/hp800.h Fri Dec 03 17:06:51 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* machine description file for hp9000 series 800 machines. - -Copyright (C) 1987, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. - -This file is part of GNU Emacs. - -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -GNU Emacs is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see . */ - -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - -/* arch-tag: 809436e6-1645-4b92-b40d-2de5d6e7227c - (do not change this comment) */ diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/ia64.h --- a/src/m/ia64.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/ia64.h Fri Dec 03 17:08:05 2010 -0500 @@ -31,13 +31,6 @@ #define EMACS_INT long #define EMACS_UINT unsigned long -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/ibms390.h --- a/src/m/ibms390.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/ibms390.h Fri Dec 03 17:08:05 2010 -0500 @@ -19,13 +19,6 @@ along with GNU Emacs. If not, see . */ -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/ibms390x.h --- a/src/m/ibms390x.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/ibms390x.h Fri Dec 03 17:08:05 2010 -0500 @@ -27,13 +27,6 @@ #define EMACS_INT long #define EMACS_UINT unsigned long -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#undef EXPLICIT_SIGN_EXTEND - /* On the 64 bit architecture, we can use 60 bits for addresses */ #define VALBITS 60 diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/iris4d.h --- a/src/m/iris4d.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/iris4d.h Fri Dec 03 17:08:05 2010 -0500 @@ -19,13 +19,6 @@ along with GNU Emacs. If not, see . */ -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT). */ diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/m68k.h --- a/src/m/m68k.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/m68k.h Fri Dec 03 17:08:05 2010 -0500 @@ -24,13 +24,6 @@ #define m68k #endif -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - #ifdef GNU_LINUX #ifdef __ELF__ #define DATA_SEG_BITS 0x80000000 diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/mips.h --- a/src/m/mips.h Fri Dec 03 17:06:51 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* m- file for Mips machines. - -Copyright (C) 1987, 1992, 1999, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - -This file is part of GNU Emacs. - -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -GNU Emacs is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see . */ - -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - -/* arch-tag: 8fd020ee-78a7-4d87-96ce-6129f52f7bee - (do not change this comment) */ diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/sparc.h --- a/src/m/sparc.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/sparc.h Fri Dec 03 17:08:05 2010 -0500 @@ -20,10 +20,6 @@ /* __sparc__ is defined by the compiler by default. */ -/* XINT must explicitly sign-extend - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long diff -r 6da5e88812e5 -r 03dcd8e4c9c7 src/m/template.h --- a/src/m/template.h Fri Dec 03 17:06:51 2010 -0500 +++ b/src/m/template.h Fri Dec 03 17:08:05 2010 -0500 @@ -22,13 +22,6 @@ does not define it automatically. Ones defined so far include m68k and many others */ -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - This flag only matters if you use USE_LISP_UNION_TYPE. */ -#define EXPLICIT_SIGN_EXTEND - /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long