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:
parent
ce662d4c92
commit
aac280fbf0
@ -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
|
||||
|
@ -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. */
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user