diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31a3dc8..5222233 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-09-21 Alan Modra <amodra@bigpond.net.au> + + * config/rs6000/rs6000.md (floatdisf2_internal2): Combine + insns. Supply missing clobber of scratch reg. + 2002-09-20 Kazu Hirata <kazu@cs.umass.edu> * config/m32r/m32r.c: Follow spelling conventions. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c1a8478..6d80b0b 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -5929,8 +5929,12 @@ ;; by a bit that won't be lost at that stage, but is below the SFmode ;; rounding position. (define_expand "floatdisf2_internal2" - [(set (match_dup 2) (and:DI (match_operand:DI 0 "" "") (const_int 2047))) - (set (match_dup 4) (compare:CC (match_dup 2) (const_int 0))) + [(parallel [(set (match_dup 4) + (compare:CC (and:DI (match_operand:DI 0 "" "") + (const_int 2047)) + (const_int 0))) + (set (match_dup 2) (and:DI (match_dup 0) (const_int 2047))) + (clobber (match_scratch:CC 7 ""))]) (set (match_dup 3) (ashiftrt:DI (match_dup 0) (const_int 53))) (set (match_dup 3) (plus:DI (match_dup 3) (const_int 1))) (set (pc) (if_then_else (eq (match_dup 4) (const_int 0)) |