aboutsummaryrefslogtreecommitdiff
path: root/gcc/machmode.h
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2005-05-31 20:20:13 -0400
committerDJ Delorie <dj@gcc.gnu.org>2005-05-31 20:20:13 -0400
commitd2348bd59174b5f3c5c492da6190f80c3f6d745b (patch)
treead8920def875a4093b66cd5ff53f14ecb758f32a /gcc/machmode.h
parentcc2f3fa620d43b024f4cc1ea800e5246798e1f00 (diff)
downloadgcc-d2348bd59174b5f3c5c492da6190f80c3f6d745b.zip
gcc-d2348bd59174b5f3c5c492da6190f80c3f6d745b.tar.gz
gcc-d2348bd59174b5f3c5c492da6190f80c3f6d745b.tar.bz2
expr.c (convert_move): When a partial_int requires multiple conversion steps...
* expr.c (convert_move): When a partial_int requires multiple conversion steps, make sure successive steps convert the intermediate value, not the original value. * expmed.c (expand_mult): Convert partial_int multiplies to shift/add combinations too. * genmodes.c (mode_data): Add wider_2x. (calc_wider_mode): Calculate twice-wider mode too. (emit_mode_wider): Emit twice-wider mode too. * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New. * expr.c (expand_expr_real_1): Use it for expanding multiplies. From-SVN: r100414
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r--gcc/machmode.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h
index c978c0a..10016f8 100644
--- a/gcc/machmode.h
+++ b/gcc/machmode.h
@@ -115,6 +115,9 @@ extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
extern const unsigned char mode_wider[NUM_MACHINE_MODES];
#define GET_MODE_WIDER_MODE(MODE) mode_wider[MODE]
+extern const unsigned char mode_2xwider[NUM_MACHINE_MODES];
+#define GET_MODE_2XWIDER_MODE(MODE) mode_2xwider[MODE]
+
/* Return the mode for data of a given size SIZE and mode class CLASS.
If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
The value is BLKmode if no other mode is found. */