diff options
author | John Wehle <john@feith.com> | 1998-06-09 15:42:21 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-06-09 15:42:21 -0600 |
commit | 1c5d60f5019eec17bdad384ebc39721f0037bb25 (patch) | |
tree | 571a262202bee97703261a77d319a8e5cb21f30e /gcc | |
parent | f1be41adfe2e0835248f6302e777d899c4369b2b (diff) | |
download | gcc-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/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 51 |
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); |