]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove EXPLICIT_SIGN_EXTEND.
authorAndreas Schwab <schwab@linux-m68k.org>
Fri, 3 Dec 2010 22:08:05 +0000 (17:08 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 3 Dec 2010 22:08:05 +0000 (17:08 -0500)
* 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.

15 files changed:
admin/CPP-DEFINES
admin/ChangeLog
src/ChangeLog
src/lisp.h
src/m/alpha.h
src/m/amdx86-64.h
src/m/hp800.h [deleted file]
src/m/ia64.h
src/m/ibms390.h
src/m/ibms390x.h
src/m/iris4d.h
src/m/m68k.h
src/m/mips.h [deleted file]
src/m/sparc.h
src/m/template.h

index b5f4d555ad429cd52126ec87aa6af28f273b3c8e..0346bb2e620d9d1c388d886bc8339cde8f8f3ee0 100644 (file)
@@ -62,7 +62,6 @@ SIGTYPE
 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
index 6d114eae0031d4294b0257727e0f1e17048d9931..f5c52f0937561a9c25908701638c6e20b41d63b8 100644 (file)
@@ -1,3 +1,7 @@
+2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * CPP-DEFINES (EXPLICIT_SIGN_EXTEND): Remove.
+
 2010-10-12  Glenn Morris  <rgm@gnu.org>
 
        * notes/nextstep: Move here from ../nextstep/DEV-NOTES.
index 6213a2d46875edc5264a479af90cc14bec592592..732c902b41e8d41b66d95ba7be0e62aee000309b 100644 (file)
@@ -1,3 +1,20 @@
+2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * 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  <jan.h.d@swipnet.se>
 
        * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
index b6ae2dcd073cf198d77bc7de1a0ba8aaf81b86e3..7c3c1f3780ebb882db8be9101f5d708534bff99e 100644 (file)
@@ -267,7 +267,9 @@ union Lisp_Object
 
     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 @@ union Lisp_Object
     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 @@ enum pvec_type
 #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
index 3b6d7da92df276e534cecd52763590b38a75ca2e..0e7d182fee75d25b2a9b154470bac6e65f635d8a 100644 (file)
@@ -30,13 +30,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* __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
 
index 30aa2678717c2fa090124b7ee830582d093c61e7..867d65f66069d073bd2b3df62d80105424b5849c 100644 (file)
@@ -31,13 +31,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #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 --git a/src/m/hp800.h b/src/m/hp800.h
deleted file mode 100644 (file)
index 9998f70..0000000
+++ /dev/null
@@ -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 <http://www.gnu.org/licenses/>.  */
-
-/* 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) */
index bbf09ac878bdfdc9b3aad29f0912dcffa4daa654..e9cf07b6789b8f9433d48462cc65d9a3ee146cba 100644 (file)
@@ -31,13 +31,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #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
 
index 0acc826a1eacb40fa1ebeffa79b94a4e4e5030b3..1a19f7233a0d3a9ccb5dd7ed792d65a1dc53a191 100644 (file)
@@ -19,13 +19,6 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-/* 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
 
index 6cbfbbcdbd4f10750aa93130fde193e8e7afb69e..2ef14a22945f4b90aae6c6d9bb4d3d5e63ea1ac5 100644 (file)
@@ -27,13 +27,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #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
 
index 31f08d05cfcab92c3d9d7df3d9c483f8ecda3b8b..9e80324ee921b0d3648484839880886c39a8c1fa 100644 (file)
@@ -19,13 +19,6 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-/* 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).  */
index 8d53424ccec5c3cc10a7a7f8c98c201375a2761d..df930d511f7dbd7e8f18b48aa695e17e1277e897 100644 (file)
@@ -24,13 +24,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #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 --git a/src/m/mips.h b/src/m/mips.h
deleted file mode 100644 (file)
index b3a754c..0000000
+++ /dev/null
@@ -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 <http://www.gnu.org/licenses/>.  */
-
-/* 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) */
index 26ca3caaebe08780597993c2b2fa1f4e1036d8ca..fc5ea95c0eb480ff628f5092d91a6ba7271bc713 100644 (file)
@@ -20,10 +20,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* __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
 
index 4efc9158a45dc95bebeffc21fcc89ca81db2f8bf..0d8e78622a6dbe399e03868b4b7a84d671fd8b42 100644 (file)
@@ -22,13 +22,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    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