OSDN Git Service

* pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Sep 2004 19:37:56 +0000 (19:37 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Sep 2004 19:37:56 +0000 (19:37 +0000)
UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88144 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/pa.c

index 9c745f9..4268e38 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
+       UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
+
 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
index a4edfeb..5f21e17 100644 (file)
@@ -5102,7 +5102,10 @@ print_operand (FILE *file, rtx x, int code)
        }
       return;
     /* For floating point comparisons.  Note that the output
-       predicates are the complement of the desired mode.  */
+       predicates are the complement of the desired mode.  The
+       conditions for GT, GE, LT, LE and LTGT cause an invalid
+       operation exception if the result is unordered and this
+       exception is enabled in the floating-point status register.  */
     case 'Y':
       switch (GET_CODE (x))
        {
@@ -5121,19 +5124,19 @@ print_operand (FILE *file, rtx x, int code)
        case LTGT:
          fputs ("!<>", file);  break;
        case UNLE:
-         fputs (">", file);  break;
+         fputs ("!?<=", file);  break;
        case UNLT:
-         fputs (">=", file);  break;
+         fputs ("!?<", file);  break;
        case UNGE:
-         fputs ("<", file);  break;
+         fputs ("!?>=", file);  break;
        case UNGT:
-         fputs ("<=", file);  break;
+         fputs ("!?>", file);  break;
        case UNEQ:
-         fputs ("<>", file);  break;
+         fputs ("!?=", file);  break;
        case UNORDERED:
-         fputs ("<=>", file);  break;
+         fputs ("!?", file);  break;
        case ORDERED:
-         fputs ("!<=>", file);  break;
+         fputs ("?", file);  break;
        default:
          abort ();
        }