aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2012-10-31 08:00:24 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2012-10-31 08:00:24 +0000
commit94eba7a819f107f909777b30a536f554baa3a77c (patch)
treeaaba5f374433398062553a429cc64d8b2659e75f /gcc
parent7682c22c3a1c4460f882186ee6b992d458ca81c6 (diff)
downloadgcc-94eba7a819f107f909777b30a536f554baa3a77c.zip
gcc-94eba7a819f107f909777b30a536f554baa3a77c.tar.gz
gcc-94eba7a819f107f909777b30a536f554baa3a77c.tar.bz2
expmed.c (store_bit_field_1): Use OP_MODE to check whether an insv pattern is available.
gcc/ * expmed.c (store_bit_field_1): Use OP_MODE to check whether an insv pattern is available. Remove redundant checks for OP_MODE being MAX_MACHINE_MODE. (extract_bit_field_1): Remove redundant checks for EXT_MODE being MAX_MACHINE_MODE. From-SVN: r193022
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/expmed.c18
2 files changed, 14 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7f9d771..3e08802 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
+ * expmed.c (store_bit_field_1): Use OP_MODE to check whether an
+ insv pattern is available. Remove redundant checks for OP_MODE
+ being MAX_MACHINE_MODE.
+ (extract_bit_field_1): Remove redundant checks for EXT_MODE being
+ MAX_MACHINE_MODE.
+
+2012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
+
* expmed.c (store_bit_field_1): Remove test for BLKmode values.
2012-10-31 Ralf Corsépius <ralf.corsepius@rtems.org>,
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 1152eee..f6b3d6c 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -669,7 +669,7 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
in a word. */
enum machine_mode op_mode = mode_for_extraction (EP_insv, 3);
- if (HAVE_insv
+ if (op_mode != MAX_MACHINE_MODE
&& bitsize > 0
&& GET_MODE_BITSIZE (op_mode) >= bitsize
/* Do not use insv for volatile bitfields when
@@ -788,7 +788,7 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
/* If OP0 is a memory, try copying it to a register and seeing if a
cheap register alternative is available. */
- if (HAVE_insv && MEM_P (op0))
+ if (op_mode != MAX_MACHINE_MODE && MEM_P (op0))
{
enum machine_mode bestmode;
unsigned HOST_WIDE_INT maxbits = MAX_FIXED_MODE_SIZE;
@@ -803,13 +803,10 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
if (GET_MODE (op0) == BLKmode
|| GET_MODE_BITSIZE (GET_MODE (op0)) > maxbits
- || (op_mode != MAX_MACHINE_MODE
- && GET_MODE_SIZE (GET_MODE (op0)) > GET_MODE_SIZE (op_mode)))
+ || GET_MODE_SIZE (GET_MODE (op0)) > GET_MODE_SIZE (op_mode))
bestmode = get_best_mode (bitsize, bitnum,
bitregion_start, bitregion_end,
- MEM_ALIGN (op0),
- (op_mode == MAX_MACHINE_MODE
- ? VOIDmode : op_mode),
+ MEM_ALIGN (op0), op_mode,
MEM_VOLATILE_P (op0));
else
bestmode = GET_MODE (op0);
@@ -1597,12 +1594,9 @@ extract_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
smallest mode containing the field. */
if (GET_MODE (op0) == BLKmode
- || (ext_mode != MAX_MACHINE_MODE
- && GET_MODE_SIZE (GET_MODE (op0)) > GET_MODE_SIZE (ext_mode)))
+ || GET_MODE_SIZE (GET_MODE (op0)) > GET_MODE_SIZE (ext_mode))
bestmode = get_best_mode (bitsize, bitnum, 0, 0, MEM_ALIGN (op0),
- (ext_mode == MAX_MACHINE_MODE
- ? VOIDmode : ext_mode),
- MEM_VOLATILE_P (op0));
+ ext_mode, MEM_VOLATILE_P (op0));
else
bestmode = GET_MODE (op0);