aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames Van Artsdalen <jrv@gnu.org>1992-10-12 21:37:11 +0000
committerJames Van Artsdalen <jrv@gnu.org>1992-10-12 21:37:11 +0000
commitb329456eff9087db32b6dd24e8300ef59821f07c (patch)
tree273055a58a0bb01bf76555c575d6466afd72cdda /gcc
parente8a2790cc7b812793db68328af927e6015c8576d (diff)
downloadgcc-b329456eff9087db32b6dd24e8300ef59821f07c.zip
gcc-b329456eff9087db32b6dd24e8300ef59821f07c.tar.gz
gcc-b329456eff9087db32b6dd24e8300ef59821f07c.tar.bz2
(alter_cond): If CC_NOT_SIGNED, convert signed conditions to unsigned.
From-SVN: r2413
Diffstat (limited to 'gcc')
-rw-r--r--gcc/final.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 49df7b0..16da27d 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1940,7 +1940,33 @@ alter_cond (cond)
value = 2;
break;
}
-
+
+ if (cc_status.flags & CC_NOT_SIGNED)
+ /* The flags are valid if signed condition operators are converted
+ to unsigned. */
+ switch (GET_CODE (cond))
+ {
+ case LE:
+ PUT_CODE (cond, LEU);
+ value = 2;
+ break;
+
+ case LT:
+ PUT_CODE (cond, LTU);
+ value = 2;
+ break;
+
+ case GT:
+ PUT_CODE (cond, GTU);
+ value = 2;
+ break;
+
+ case GE:
+ PUT_CODE (cond, GEU);
+ value = 2;
+ break;
+ }
+
return value;
}
#endif