This is the mail archive of the gcc@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] |
Define a union class which includes all the registers in D_REGS and R_REGS, then define IRA_COVER_CLASSES to that union class. When register classes are mostly symmetrical, except for stuff like argument passing, return values and the like, you usually get better code by defining IRA_COVER_CLASSES with a single union class rather than the component subclasses.
From the h file:
#define REG_CLASS_CONTENTS \ { \ {0x00000000, 0x00000000, 0x00000000}, /* NO_REGS*/ \ {0xFFFFFFFF, 0x0000FFFF, 0x00000000}, /* D_REGS*/ \ {0x00000000, 0xFFFF0000, 0x0000FFFF}, /* R_REGS*/ \
ABI requires use of R registers for arguments and return value. Other
than that all of these instructions are more or less symmetrical in
sense of using D or R. So, an optimal choice would be use of R for
this example. And if D register is chosen, it involves additional copy
from R to D and back to R.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |