aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>1998-06-09 15:42:21 -0600
committerJeff Law <law@gcc.gnu.org>1998-06-09 15:42:21 -0600
commit1c5d60f5019eec17bdad384ebc39721f0037bb25 (patch)
tree571a262202bee97703261a77d319a8e5cb21f30e /gcc
parentf1be41adfe2e0835248f6302e777d899c4369b2b (diff)
downloadgcc-1c5d60f5019eec17bdad384ebc39721f0037bb25.zip
gcc-1c5d60f5019eec17bdad384ebc39721f0037bb25.tar.gz
gcc-1c5d60f5019eec17bdad384ebc39721f0037bb25.tar.bz2
i386.md (movsfcc, [...]): The floating point conditional move instructions don't support signed integer...
* i386.md (movsfcc, movdfcc, movxfcc): The floating point conditional move instructions don't support signed integer comparisons. From-SVN: r20391
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i386/i386.md51
2 files changed, 63 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 75ca674..1f9f640 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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".
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index b2ee298..4cda8f7 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -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);