Committed, MMIX: Fix fixuns_truncdfdi2.

Hans-Peter Nilsson hp@bitrange.com
Fri Oct 25 19:34:00 GMT 2002


Regression (and other) bug-hunt for MMIX is overdue.
The docs say unsigned_fix isn't allowed to generate integer
modes, while fix is.  It seems simplify_unary_operation agrees.
BTW, this is the same RTL that pa.md has.  This fixes some
regressions-by-unrelated-exposure:

-gcc.c-torture/execute/980605-1.c compilation,  -O3 -fomit-frame-pointer
-gcc.c-torture/execute/980605-1.c compilation,  -O3 -g
-gcc.c-torture/execute/conversion.c compilation,  -O3 -fomit-frame-pointer
-gcc.c-torture/execute/conversion.c compilation,  -O3 -g
-gcc.c-torture/execute/gofast.c compilation,  -O3 -fomit-frame-pointer
-gcc.c-torture/execute/gofast.c compilation,  -O3 -g
-gcc.c-torture/execute/ieee/rbug.c compilation,  -O3 -fomit-frame-pointer
-gcc.c-torture/execute/ieee/rbug.c compilation,  -O3 -g
-gcc.c-torture/unsorted/BUG11.c,  -O3 -fomit-frame-pointer
-gcc.c-torture/unsorted/BUG11.c,  -O3 -g
-gcc.c-torture/unsorted/conv.c,  -O3 -fomit-frame-pointer
-gcc.c-torture/unsorted/conv.c,  -O3 -g
-gcc.c-torture/unsorted/conv_tst.c,  -O3 -fomit-frame-pointer
-gcc.c-torture/unsorted/conv_tst.c,  -O3 -g

(14 down, more-than-three to go.)

	* config/mmix/mmix.md ("fixuns_truncdfdi2"): Replace unsigned_fix,
	invalid for floating point mode result, with fix.

Index: mmix.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.md,v
retrieving revision 1.18
diff -p -c -r1.18 mmix.md
*** mmix.md	24 Sep 2002 12:49:00 -0000	1.18
--- mmix.md	26 Oct 2002 02:14:31 -0000
*************** DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\
*** 583,589 ****
  (define_insn "fixuns_truncdfdi2"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unsigned_fix:DI
! 	 (unsigned_fix:DF (match_operand:DF 1 "register_operand" "r"))))]
    ""
    ;; ROUND_OFF
    "FIXU %0,1,%1")
--- 583,589 ----
  (define_insn "fixuns_truncdfdi2"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unsigned_fix:DI
! 	 (fix:DF (match_operand:DF 1 "register_operand" "r"))))]
    ""
    ;; ROUND_OFF
    "FIXU %0,1,%1")

brgds, H-P



More information about the Gcc-patches mailing list