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]

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 ;-)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]