On Saturday 17 May 2008, Mohamed Shafi wrote: > Hello all, > > Recently i noticed that register allocation for the operands in a > unspec pattern was going wrong. > This was because there was no conflict between the registers used in > the unspec pattern and the other registers which should have been > there. > During debugging i found out that the code is written in such a way > that it doesn't consider registers used inside an unspec expression. > So i rewrote the patten so that the unspec is in the source rather > than in the destination of the pattern. That solved the issue. But is > this expected? > Will the allocation also go wrong for the source operands if they > contain registers inside an unpsec expression? I still haven't > encountered this.
Registers in an unspec are no different to registers used anywhere else. All the normal rues about overallping operands, early clobbers, etc. apply. Paul