aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/h8300/h8300.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 593e4cf..2c52441 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (notice_update_cc): Correctly handle
+ the case where the set destination is STRICT_LOW_PART.
+
2003-03-22 Svein E. Seldal <Svein.Seldal@solidas.com>
* config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 057d2ae..191bccc 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -1809,7 +1809,14 @@ notice_update_cc (body, insn)
set = single_set (insn);
cc_status.value1 = SET_SRC (set);
if (SET_DEST (set) != cc0_rtx)
- cc_status.value2 = SET_DEST (set);
+ {
+ /* If the destination is STRICT_LOW_PART, strip off
+ STRICT_LOW_PART. */
+ if (GET_CODE (SET_DEST (set)) == STRICT_LOW_PART)
+ cc_status.value2 = XEXP (SET_DEST (set), 0);
+ else
+ cc_status.value2 = SET_DEST (set);
+ }
break;
case CC_COMPARE: