svn commit: r259525 - in head/contrib/gcc: . config/rs6000
Pedro F. Giffuni
pfg at FreeBSD.org
Tue Dec 17 20:53:23 UTC 2013
Author: pfg
Date: Tue Dec 17 20:53:22 2013
New Revision: 259525
URL: http://svnweb.freebsd.org/changeset/base/259525
Log:
gcc: fix ICE in rs600 when using -fno-trapping-math.
Solves GCC-PR target/30485
Obtained from: gcc 4.3 (rev. 120902; GPLv2)
MFC after: 2 weeks
Modified:
head/contrib/gcc/ChangeLog.gcc43
head/contrib/gcc/config/rs6000/rs6000.c
Modified: head/contrib/gcc/ChangeLog.gcc43
==============================================================================
--- head/contrib/gcc/ChangeLog.gcc43 Tue Dec 17 18:44:46 2013 (r259524)
+++ head/contrib/gcc/ChangeLog.gcc43 Tue Dec 17 20:53:22 2013 (r259525)
@@ -399,6 +399,12 @@
(override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
for CPUs that have PTA_CX16 set.
+2007-01-18 Josh Conner <jconner at apple.com> (r120902)
+
+ PR target/30485
+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
+ support for UNLE, UNLT, UNGE, and UNGT.
+
2007-01-17 Eric Christopher <echristo at apple.com> (r120846)
* config.gcc: Support core2 processor.
Modified: head/contrib/gcc/config/rs6000/rs6000.c
==============================================================================
--- head/contrib/gcc/config/rs6000/rs6000.c Tue Dec 17 18:44:46 2013 (r259524)
+++ head/contrib/gcc/config/rs6000/rs6000.c Tue Dec 17 20:53:22 2013 (r259525)
@@ -11738,10 +11738,18 @@ rs6000_emit_vector_compare (enum rtx_cod
try_again = true;
break;
case NE:
- /* Treat A != B as ~(A==B). */
+ case UNLE:
+ case UNLT:
+ case UNGE:
+ case UNGT:
+ /* Invert condition and try again.
+ e.g., A != B becomes ~(A==B). */
{
+ enum rtx_code rev_code;
enum insn_code nor_code;
- rtx eq_rtx = rs6000_emit_vector_compare (EQ, op0, op1,
+
+ rev_code = reverse_condition_maybe_unordered (rcode);
+ rtx eq_rtx = rs6000_emit_vector_compare (rev_code, op0, op1,
dest_mode);
nor_code = one_cmpl_optab->handlers[(int)dest_mode].insn_code;
More information about the svn-src-all
mailing list