OSDN Git Service

* i386.md (movsfcc, movdfcc, movxfcc): The floating point
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jun 1998 21:42:21 +0000 (21:42 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jun 1998 21:42:21 +0000 (21:42 +0000)
        conditional move instructions don't support signed integer
        comparisons.

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

gcc/ChangeLog
gcc/config/i386/i386.md

index 75ca674..1f9f640 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jun  3 23:41:24 EDT 1998  John Wehle  (john@feith.com)
+
+       * i386.md (movsfcc, movdfcc, movxfcc): The floating point
+       conditional move instructions don't support signed integer
+       comparisons.
+
 Tue Jun  9 14:31:19 1998  Nick Clifton  <nickc@cygnus.com>
 
        * config/v850/t-v850 (TCFLAGS): Add assembler options to warn of
@@ -33,6 +39,12 @@ Tue Jun  9 12:10:27 1998  John Carr  <jfc@mit.edu>
 
 Tue Jun  9 12:36:16 1998  Jeffrey A Law  (law@cygnus.com)
 
+       * mips.c (gpr_mode): New variable.
+       (override_options): Initialize gpr_mode.
+       (compute_frame_size): Use "gpr_mode" instead of "word_mode" to
+       determine size and offset of general purpose registers save slots.
+       (save_restore_insns, mips_expand_prologue): Similarly.
+
        * Makefile.in (LIB2FUNCS_EH): Define.  Just "_eh" for now.
        (LIBGCC2_CFLAGS): Remove -fexceptions.
        (LIB2FUNCS): Remove "_eh".
index b2ee298..4cda8f7 100644 (file)
@@ -7469,6 +7469,23 @@ byte_xor_operation:
   if (GET_MODE_CLASS (GET_MODE (i386_compare_op0)) != MODE_INT)
     FAIL;
 
+  /* The floating point conditional move instructions don't support
+     signed integer comparisons. */
+
+  switch (GET_CODE (operands[1]))
+    {
+    case LT:
+    case LE:
+    case GE:
+    case GT:
+      FAIL;
+    /* NOTREACHED */
+      break;
+
+    default:
+      break;
+    }
+
   operands[1] = gen_rtx_fmt_ee (GET_CODE (operands[1]),
                        GET_MODE (i386_compare_op0),
                        i386_compare_op0, i386_compare_op1);
@@ -7543,6 +7560,23 @@ byte_xor_operation:
   if (GET_MODE_CLASS (GET_MODE (i386_compare_op0)) != MODE_INT)
     FAIL;
 
+  /* The floating point conditional move instructions don't support
+     signed integer comparisons. */
+
+  switch (GET_CODE (operands[1]))
+    {
+    case LT:
+    case LE:
+    case GE:
+    case GT:
+      FAIL;
+    /* NOTREACHED */
+      break;
+
+    default:
+      break;
+    }
+
   operands[1] = gen_rtx_fmt_ee (GET_CODE (operands[1]),
                        GET_MODE (i386_compare_op0),
                        i386_compare_op0, i386_compare_op1);
@@ -7617,6 +7651,23 @@ byte_xor_operation:
   if (GET_MODE_CLASS (GET_MODE (i386_compare_op0)) != MODE_INT)
     FAIL;
 
+  /* The floating point conditional move instructions don't support
+     signed integer comparisons. */
+
+  switch (GET_CODE (operands[1]))
+    {
+    case LT:
+    case LE:
+    case GE:
+    case GT:
+      FAIL;
+    /* NOTREACHED */
+      break;
+
+    default:
+      break;
+    }
+
   operands[1] = gen_rtx_fmt_ee (GET_CODE (operands[1]),
                        GET_MODE (i386_compare_op0),
                        i386_compare_op0, i386_compare_op1);