expmed.c (extract_bit_field): allow non-integral modes if we want to extract a whole register from itself.

* expmed.c (extract_bit_field): allow non-integral modes if we
want to extract a whole register from itself.

From-SVN: r39381
This commit is contained in:
DJ Delorie 2001-01-31 14:05:49 -05:00 committed by DJ Delorie
parent ce662d4c92
commit aac280fbf0
2 changed files with 14 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-12-31 DJ Delorie <dj@redhat.com>
* expmed.c (extract_bit_field): allow non-integral modes if we
want to extract a whole register from itself.
2001-01-31 Jakub Jelinek <jakub@redhat.com>
* c-typeck.c (set_init_index): If first is equal to last, assume as

View File

@ -1027,6 +1027,15 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
op0 = SUBREG_REG (op0);
}
if (GET_CODE (op0) == REG
&& mode == GET_MODE (op0)
&& bitnum == 0
&& bitsize == GET_MODE_BITSIZE (GET_MODE (op0)))
{
/* We're trying to extract a full register from itself. */
return op0;
}
/* Make sure we are playing with integral modes. Pun with subregs
if we aren't. */
{