aboutsummaryrefslogtreecommitdiff
path: root/gcc/machmode.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2000-09-18 10:55:38 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-09-18 10:55:38 -0700
commita191f0ee83fb815187657cadac361e883f496f01 (patch)
tree15eac562db9eb775cc5d5a1937b5f0e2fb7f5ce0 /gcc/machmode.h
parent42d5d0f171ae6a0f933ed7d6cf3adeb653db19c5 (diff)
downloadgcc-a191f0ee83fb815187657cadac361e883f496f01.zip
gcc-a191f0ee83fb815187657cadac361e883f496f01.tar.gz
gcc-a191f0ee83fb815187657cadac361e883f496f01.tar.bz2
machmode.def: Add BImode.
* machmode.def: Add BImode. Add a column for bitsize. * machmode.h (DEF_MACHMODE): Adjust for extra column. (GET_MODE_BITSIZE): Use it. * rtl.c (DEF_MACHMODE): Adjust for extra column. (mode_bitsize): New. (mode_mask_array): Use bitsize. * combine.c (combine_simplify_rtx): Require inner and outer modes to match on nonzero_bits optimizations. From-SVN: r36501
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r--gcc/machmode.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h
index f5a3ab9..e565cb7 100644
--- a/gcc/machmode.h
+++ b/gcc/machmode.h
@@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */
/* Make an enum class that gives all the machine modes. */
-#define DEF_MACHMODE(SYM, NAME, TYPE, SIZE, UNIT, WIDER) SYM,
+#define DEF_MACHMODE(SYM, NAME, TYPE, BITSIZE, SIZE, UNIT, WIDER) SYM,
enum machine_mode {
#include "machmode.def"
@@ -93,7 +93,8 @@ extern const unsigned int mode_unit_size[];
/* Get the size in bits of an object of mode MODE. */
-#define GET_MODE_BITSIZE(MODE) (BITS_PER_UNIT * mode_size[(int) (MODE)])
+extern const unsigned int mode_bitsize[];
+#define GET_MODE_BITSIZE(MODE) (mode_bitsize[(int) (MODE)])
#ifdef HOST_WIDE_INT