aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-31 23:26:07 +0000
committerRichard Stallman <rms@gnu.org>1993-10-31 23:26:07 +0000
commit568b388feb480ec060e28e27217a4330e8d34f8b (patch)
treeac1b95eb8634e62b02c69f94239e63164a5184c6 /gcc
parent94dccd9d27e6b682760440cc5693e7f049676ae1 (diff)
downloadgcc-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.md20
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\";
}")