On 09/28/2011 03:07 PM, Jan Kiszka wrote: > On 2011-09-28 17:19, Richard Henderson wrote: >> On 09/28/2011 07:33 AM, Jan Kiszka wrote: >>>> I don't particularly care for the 3 different opcodes. Perhaps >>>> we'd be better off with an inline predicate for when the deposit >>>> opcode is "valid"? >>> >>> We still need to dispatch at tcg generation time which variant is valid. Or >>> what do you have in mind? >> >> Yes, but we'd know at tcg generation time that it *does* fit one of >> the few patterns you point out. >> >> The predicate would be used in e.g. tcg_gen_deposit_i32 to select >> either INDEX_op_deposit_i32 or the and/shift/and/or fallback. > > I think I'm slowly starting to understand: > > #define TCG_TARGET_HAS_deposit_i32(ofs, len) \ > (((ofs) == 0 && (len) == 8 && TCG_TARGET_HAS_deposit8l_i32) || \ > ...) > > defined by the i386 tcg target, right?
Something like that. Except without the TCG_TARGET_HAS_deposit8l_i32. r~