summaryrefslogtreecommitdiff
path: root/gcc/machmode.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-18 17:55:38 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-18 17:55:38 +0000
commit3573fd048138934237552b7d25a71152e89dd110 (patch)
tree15eac562db9eb775cc5d5a1937b5f0e2fb7f5ce0 /gcc/machmode.h
parentcc83a5de4d00ba690358a0099784be1077dc8215 (diff)
downloadgcc-3573fd048138934237552b7d25a71152e89dd110.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36501 138bc75d-0d04-0410-961f-82ee72b054a4
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 f5a3ab96816..e565cb70d21 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