This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][M68K] Fix extendsidi pattern to handle ColdFire


Jeff Law wrote:
Maxim Kuvyrkov wrote:

but in the rm->d case you end up allocating an unnecessary scratch register.

But why? In rm->d case the constraints in the (match_scratch)'es are 'X', so the RA/reload should not assign anything meaningful to them. Or am I misinterpreting GCC Internals?
So why bother with operand3 at all as all its alternatives are 'X'?

Operand3 was introduced for the sake of making output code cleaner; specifically:


    operands[3] = adjust_address (operands[0], SImode,
 				which_alternative == 0 ? 4 : 0);

While this construct has been working without declaring the operand in the pattern for years, it is cleaner, in my opinion, to explicitly declare every operand in use by the pattern.

--
MaximK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]