diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-01-17 23:56:06 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-01-17 23:56:06 +0000 |
commit | 625d6efb2e869e857b1f8aebf1b3dc862be9a4be (patch) | |
tree | f91a7981990bc1c46f9037e4de0902487ac330c6 /gcc/expmed.c | |
parent | 2f66393fc91013ef2bbc7c66e7097e456556ee97 (diff) | |
download | gcc-625d6efb2e869e857b1f8aebf1b3dc862be9a4be.tar.gz |
(extract_bit_field): For multi-word bitfield, clobber target before
storing to it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11059 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 3 |
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; |