diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f88b44df2b9..56d2cf62f51 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-03-09 Geoffrey Keating + + * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER. + (ne0+5): Use new clobber to generate proper shift pattern. + Patch by Michael Matz . + 2002-03-09 Andreas Schwab * gcc.c (validate_all_switches): Also handle `%W{...}'. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index cf1627657c3..b1ec3f47ec1 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -11013,7 +11013,8 @@ (const_int 31)) (match_operand:SI 2 "gpc_reg_operand" "r,r")) (const_int 0))) - (clobber (match_scratch:SI 3 "=&r,&r"))] + (clobber (match_scratch:SI 3 "=&r,&r")) + (clobber (match_scratch:SI 4 "=X,&r"))] "! TARGET_POWERPC64" "@ {ai|addic} %3,%1,-1\;{aze.|addze.} %3,%2 @@ -11029,12 +11030,14 @@ (const_int 31)) (match_operand:SI 2 "gpc_reg_operand" "")) (const_int 0))) - (clobber (match_scratch:SI 3 ""))] + (clobber (match_scratch:SI 3 "")) + (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" - [(set (match_dup 3) - (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) - (const_int 31)) - (match_dup 2))) + [(parallel [(set (match_dup 3) + (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) + (const_int 31)) + (match_dup 2))) + (clobber (match_dup 4))]) (set (match_dup 0) (compare:CC (match_dup 3) (const_int 0)))]