diff options
author | Michael Meissner <meissner@gcc.gnu.org> | 1995-06-27 18:41:38 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1995-06-27 18:41:38 +0000 |
commit | c645b1c9abd8433e95dfc0f365df9ef163917a11 (patch) | |
tree | 46a64abde952c4b7ec80c4bf4d6f064215ff3484 /gcc | |
parent | de2b56f93dfc74680a2e2039f21cf6e0bd6cfc03 (diff) | |
download | gcc-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.c | 8 |
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; |