This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Trying to work around a 16-bit x86 weirdness
> Should I add a pattern for (set (match_operand:HI 0)
> (match_operand:DI 1)) just so I can catch these large CONST_INT's?
If this is the problem you want to solve, the solution is to write
your own predicate that exactly matches the operands you want to
match. In this case, something like this pseudo-code:
i86_movhi_src_operand ()
{
if (const_int in 0x8000..0xffff)
return true;
if (some_other_odd_case)
return false;
return general_operand();
}
Note, however, that allowing 0x8000..0xffff in a hi/losum split may
cause problems. i86 shouldn't need that kind of split, though, so
this should be a non-problem for you.
Also, this may not be the right thing to do to fix your problem anyway ;-)