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....