Re: a question about peephole2

2005-05-14 Thread Richard Henderson
On Sat, May 14, 2005 at 09:32:26AM +0800, zouq wrote: > the MAX_INSNS_PER_PEEP2 is 3, > when the program case is : > mul.d $f1, $f1, $f0 > add.d $f2, $f2, $f1 > sub.d $f3, $f3, $f2 So what's the problem? r~

Re: a question about peephole2

2005-05-13 Thread zouq
en,i still have a problem, the MAX_INSNS_PER_PEEP2 is 3, when the program case is : mul.d $f1, $f1, $f0 add.d $f2, $f2, $f1 sub.d $f3, $f3, $f2 sdc1 $f3, 0(v0) addiu v0, v0, 1 add.d $f3, $f4, $f2 sdc1 > On Fri, May 13, 2005 at 11:37:16PM +0800, zouq wrote: >> original program is: >> mul.d $f1, $f1

Re: a question about peephole2

2005-05-13 Thread Richard Henderson
On Fri, May 13, 2005 at 11:37:16PM +0800, zouq wrote: > original program is: > mul.d $f1, $f1, $f0 > add.d $f2, $f2, $f1 > div.d $f3, $f0, $f1; > > after i compile used my changed gcc, it becomes: > madd.d $f2, $f1, $0 > div.d $f3, $f0, $f1 > > as you can see, the value of $f1 is wrong!! Check

a question about peephole2

2005-05-13 Thread zouq
first i want to generate a three-operator multiply-add instruction similar to four-operator multiply-add instruction in mips4 instruction sets. i modify the gcc/config/mips/mips.md file as follow: (define_peephole2 [ (set (match_operand:SF 0 "register_operand" "=f") (mult:SF (match_operan