Bug in double->unsigned casting on powerpc-unknown-linux-gnu
David Edelsohn
dje@watson.ibm.com
Fri Nov 6 15:37:00 GMT 1998
I have just commited the appended patch to fix this bug. This was
on all PowerPC targets, not just Linux/GNU.
David
Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.md (floatunssidf2_internal splitter): Use base register
operand, not hard-coded SP.
Index: rs6000.md
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.29
diff -c -p -r1.29 rs6000.md
*** rs6000.md 1998/10/05 22:03:25 1.29
--- rs6000.md 1998/11/06 21:33:42
***************
*** 3704,3710 ****
(unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "")))
(use (match_operand:SI 2 "gpc_reg_operand" ""))
(use (match_operand:DF 3 "gpc_reg_operand" ""))
! (clobber (match_operand 4 "gpc_reg_operand" "=b"))
(clobber (reg:DF 76))]
"TARGET_HARD_FLOAT"
[(set (match_dup 4)
--- 3704,3710 ----
(unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "")))
(use (match_operand:SI 2 "gpc_reg_operand" ""))
(use (match_operand:DF 3 "gpc_reg_operand" ""))
! (clobber (match_operand 4 "gpc_reg_operand" ""))
(clobber (reg:DF 76))]
"TARGET_HARD_FLOAT"
[(set (match_dup 4)
***************
*** 3718,3724 ****
(match_dup 5)] 13)) ;; high word
(set (match_dup 0)
(unspec [(match_dup 5)
! (reg:SI 1)] 14))
(set (match_dup 0)
(minus:DF (match_dup 0)
(match_dup 3)))]
--- 3718,3724 ----
(match_dup 5)] 13)) ;; high word
(set (match_dup 0)
(unspec [(match_dup 5)
! (match_dup 4)] 14))
(set (match_dup 0)
(minus:DF (match_dup 0)
(match_dup 3)))]
More information about the Gcc-bugs
mailing list