This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Scheduling of asm()
- From: Richard Henderson <rth at redhat dot com>
- To: mike stump <mrs at windriver dot com>
- Cc: falk dot hueffner at student dot uni-tuebingen dot de, gcc at gcc dot gnu dot org
- Date: Mon, 7 Jan 2002 10:35:47 -0800
- Subject: Re: Scheduling of asm()
- References: <200201071800.KAA11863@kankakee.wrs.com>
On Mon, Jan 07, 2002 at 10:00:03AM -0800, mike stump wrote:
> I'll go one farther. Any builtin that is expressible in normal C,
> should be added to gcc as machine independent.
No. Alpha has instructions like
op0 = (op1 >> ((op2 & 7) * 8)) & 0xff;
which, imo, isn't nearly as clear as __builtin_extbl. And frankly,
these won't be useful to other targets, whereas this is an operation
that we have to use implementing device drivers.
Irritatingly, gcc has a propensity at the moment to hoist, say, the
(op2 & 7) mask up, because it sees that operation in common with
op0 = (op1 & 0xff) << ((op2 & 7) * 8);
during gcse, so we don't recognize either the extbl or insbl insns
during combine.
Whereas if we start out with an extbl insn...
r~