On 15 March 2007 16:12, Dave Korn wrote:
>> So, is there actually anything inconsistent or incorrect about setting up
>> my reg classes in this fashion?
>>
>> #define REG_CLASS_CONTENTS { \
>> { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \
>> { 0xffffffff, 0xffffffff, 0x00000000 }, /* GENERAL_REGS */ \
>> { 0x00000000, 0x00000000, 0x00000001 }, /* MPD_REG 64 */ \
>> { 0x00000000, 0x00000000, 0x00000002 }, /* MPR_REG 65 */ \
>> { 0x00000000, 0x00000000, 0x00000004 }, /* MPRA_REG 66 */ \
>> { 0x00000000, 0x00000000, 0x00000008 }, /* MPRL_REG 67 */ \
>> { 0x00000000, 0x00000000, 0x00000010 }, /* MPRH_REG 68 */ \
>> { 0x00000000, 0x00000000, 0x00000020 }, /* MPC_REG 69 */ \
>> { 0x00000000, 0x00000000, 0x00000040 }, /* MPV_REG 70 */ \
>> { 0x00000000, 0x00000000, 0x00000080 }, /* MPRLS_REG 71 */ \
>> { 0x00000000, 0x00000000, 0x00000100 }, /* MPAR_REG 72 */ \
>> { 0x00000000, 0x00000000, 0xffffffff }, /* SPECIAL_REGS */ \
>> { 0xffffffff, 0xffffffff, 0xffffffff } /* ALL_REGS */ \
>> }
>
> Hmm, further reading in the manual suggests another question I should be
> asking about now:
>
> Because my movsi3 pattern that allows both GENERAL_REGS through an 'r'
> constraint, and MPD_REG and MPRL_REG through custom constraint letters ('a'
> and 'd'), does that mean I need to define a union class or I'm actually
> doing something wrong?
Well, it certainly /appears/ to have helped. I also moved GENERAL_REGS to
last entry before ALL_REGS just to make it preferred over the smaller classes.
cheers,
DaveK
--
Can't think of a witty .sigline today....