aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-06-27 18:41:38 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-06-27 18:41:38 +0000
commitc645b1c9abd8433e95dfc0f365df9ef163917a11 (patch)
tree46a64abde952c4b7ec80c4bf4d6f064215ff3484 /gcc
parentde2b56f93dfc74680a2e2039f21cf6e0bd6cfc03 (diff)
downloadgcc-c645b1c9abd8433e95dfc0f365df9ef163917a11.zip
gcc-c645b1c9abd8433e95dfc0f365df9ef163917a11.tar.gz
gcc-c645b1c9abd8433e95dfc0f365df9ef163917a11.tar.bz2
Do not test overflow bit for decrement_and_branch
From-SVN: r10063
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index bebb6c5..f31ee1a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2373,12 +2373,16 @@ print_operand (file, x, code)
case 'J':
switch (GET_CODE (x))
{
+ /* These conditions are appropriate for testing the result
+ of an arithmetic operation, not for a compare operation.
+ Cases GE, LT assume CC_NO_OVERFLOW true. All cases assume
+ CC_Z_IN_NOT_C false and not floating point. */
case NE: fputs ("jne", file); return;
case EQ: fputs ("je", file); return;
- case GE: fputs ("jge", file); return;
+ case GE: fputs ("jns", file); return;
case GT: fputs ("jg", file); return;
case LE: fputs ("jle", file); return;
- case LT: fputs ("jl", file); return;
+ case LT: fputs ("js", file); return;
case GEU: fputs ("jae", file); return;
case GTU: fputs ("ja", file); return;
case LEU: fputs ("jbe", file); return;