OSDN Git Service

* PR middle-end/32693
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Mar 2010 22:10:17 +0000 (22:10 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Mar 2010 22:10:17 +0000 (22:10 +0000)
* expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
than gen_rtx_SUBREG.
(extract_bit_field_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157207 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expmed.c

index a65ea60..d9bcac0 100644 (file)
@@ -1,3 +1,10 @@
+2010-03-03  Jeff Law  <law@redhat.com>
+
+       * PR middle-end/32693
+       * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
+       than gen_rtx_SUBREG.
+       (extract_bit_field_1): Likewise.
+
 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
 
        * doc/sourcebuild.texi (Test directives): Document that arguments
index ab42fd0..aa24099 100644 (file)
@@ -698,7 +698,7 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
           and we will need the original value of op0 if insv fails.  */
        xop0 = gen_rtx_SUBREG (op_mode, SUBREG_REG (xop0), SUBREG_BYTE (xop0));
       if (REG_P (xop0) && GET_MODE (xop0) != op_mode)
-       xop0 = gen_rtx_SUBREG (op_mode, xop0, 0);
+       xop0 = gen_lowpart_SUBREG (op_mode, xop0);
 
       /* If the destination is a paradoxical subreg such that we need a
         truncate to the inner mode, perform the insertion on a temporary and
@@ -1542,7 +1542,7 @@ extract_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
       /* If op0 is a register, we need it in EXT_MODE to make it
         acceptable to the format of ext(z)v.  */
       if (REG_P (xop0) && GET_MODE (xop0) != ext_mode)
-       xop0 = gen_rtx_SUBREG (ext_mode, xop0, 0);
+       xop0 = gen_lowpart_SUBREG (ext_mode, xop0);
       if (MEM_P (xop0))
        /* Get ref to first byte containing part of the field.  */
        xop0 = adjust_address (xop0, byte_mode, xoffset);