diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-31 23:26:07 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-31 23:26:07 +0000 |
commit | 568b388feb480ec060e28e27217a4330e8d34f8b (patch) | |
tree | ac1b95eb8634e62b02c69f94239e63164a5184c6 /gcc | |
parent | 94dccd9d27e6b682760440cc5693e7f049676ae1 (diff) | |
download | gcc-568b388feb480ec060e28e27217a4330e8d34f8b.zip gcc-568b388feb480ec060e28e27217a4330e8d34f8b.tar.gz gcc-568b388feb480ec060e28e27217a4330e8d34f8b.tar.bz2 |
(extzv, and its recognizer): If width is 32, don't set CC_NOT_NEGATIVE.
If width is variable, clear the CC status.
From-SVN: r5958
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m68k/m68k.md | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 4464427..1de4c57 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -3961,7 +3961,15 @@ "TARGET_68020 && TARGET_BITFIELD" "* { - cc_status.flags |= CC_NOT_NEGATIVE; + if (GET_CODE (operands[2]) == CONST_INT) + { + if (INTVAL (operands[2]) != 32) + cc_status.flags |= CC_NOT_NEGATIVE; + } + else + { + CC_STATUS_INIT; + } return \"bfextu %1{%b3:%b2},%0\"; }") @@ -4033,7 +4041,15 @@ "TARGET_68020 && TARGET_BITFIELD" "* { - cc_status.flags |= CC_NOT_NEGATIVE; + if (GET_CODE (operands[2]) == CONST_INT) + { + if (INTVAL (operands[2]) != 32) + cc_status.flags |= CC_NOT_NEGATIVE; + } + else + { + CC_STATUS_INIT; + } return \"bfextu %1{%b3:%b2},%0\"; }") |