diff options
author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-01 00:20:13 +0000 |
---|---|---|
committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-01 00:20:13 +0000 |
commit | 0663398065295b8b03266c3f4a1df130d6bdf712 (patch) | |
tree | ad8920def875a4093b66cd5ff53f14ecb758f32a /gcc/machmode.h | |
parent | 58f70b5c59a190feb5fb0b1beb8ee9b6dad292ef (diff) | |
download | gcc-0663398065295b8b03266c3f4a1df130d6bdf712.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100414 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r-- | gcc/machmode.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h index c978c0a9b52..10016f86ac7 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. */ |