summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-01-17 15:56:06 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-01-17 15:56:06 -0800
commit34ea783bd582e392bb7e1b7ee5435601d528ab03 (patch)
treef91a7981990bc1c46f9037e4de0902487ac330c6 /gcc/expmed.c
parentb52ef430a32e02e8936dde2d4d2d6ec897806c86 (diff)
downloadgcc-34ea783bd582e392bb7e1b7ee5435601d528ab03.tar.gz
(extract_bit_field): For multi-word bitfield, clobber target before
storing to it. From-SVN: r11059
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index e79a8e2a49b..dbd7eb2bb4f 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -965,6 +965,9 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
if (target == 0 || GET_CODE (target) != REG)
target = gen_reg_rtx (mode);
+ /* Indicate for flow that the entire target reg is being set. */
+ emit_insn (gen_rtx (CLOBBER, VOIDmode, target));
+
for (i = 0; i < nwords; i++)
{
/* If I is 0, use the low-order word in both field and target;