aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-02-21 11:04:36 -0700
committerJeff Law <law@gcc.gnu.org>1993-02-21 11:04:36 -0700
commitd6c0d37780931a82f979aee0844eced3d97abdad (patch)
treeb441d2b05867c192bd3eae9fb12b66ac75a691db /gcc
parentb4cb49943ee3c40812b331b4a4e1055c5fb5ff25 (diff)
downloadgcc-d6c0d37780931a82f979aee0844eced3d97abdad.zip
gcc-d6c0d37780931a82f979aee0844eced3d97abdad.tar.gz
gcc-d6c0d37780931a82f979aee0844eced3d97abdad.tar.bz2
pa.c (print_operand, case 'Y'): Output comparison operators which right result when...
* pa.c (print_operand, case 'Y'): Output comparison operators which right result when one or more of the operands is a NaN. From-SVN: r3508
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 71d1896..9d7c5c1 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1983,7 +1983,6 @@ print_operand (file, x, code)
}
return;
case 'N': /* Condition, (N)egated */
- case 'Y':
switch (GET_CODE (x))
{
case EQ:
@@ -2012,6 +2011,29 @@ print_operand (file, x, code)
abort ();
}
return;
+ /* For floating point comparisons. Need special conditions to deal
+ with NaNs properly. */
+ case 'Y':
+ switch (GET_CODE (x))
+ {
+ case EQ:
+ fprintf (file, "!="); break;
+ case NE:
+ fprintf (file, "="); break;
+ case GT:
+ fprintf (file, "!>"); break;
+ case GE:
+ fprintf (file, "!>="); break;
+ case LT:
+ fprintf (file, "!<"); break;
+ case LE:
+ fprintf (file, "!<="); break;
+ default:
+ printf ("Can't grok '%c' operator:\n", code);
+ debug_rtx (x);
+ abort ();
+ }
+ return;
case 'S': /* Condition, operands are (S)wapped. */
switch (GET_CODE (x))
{