Re: cx register problem in loop_cast.c

From: Marc Mutz (Marc@Mutz.com)
Date: Thu Mar 23 2000 - 12:42:29 EST


Alan Modra wrote:
>
> On Wed, 22 Mar 2000, Dale Amon wrote:
>
> > It may not yet concern the core kernel group but
> > perhaps it soon will if things go well...
> >
> > I get a compile error from /drivers/block/loop_cast.c,
> > part of the kerneli patches.
> >
> > It doesn't like:
> >
> > #if defined(__GNUC__) && (defined(i386) || defined(i486))
> > __asm__ (
> > "roll %%cl,%0"
> > : "r" (data)
> > : "0" (data), "c" (count)
> > : "cx"
> > );
> > and so forth
> >
> > where the error occurs on the cx register:
> >
> > fixed or forbidden register 2 (cx) was spilled for class CREG.
> >
> > occurs many times before the kernel compiles bails out.
> >
> > Is there any trivial fix?
>
> In this case, just delete the `: "cx"' line. There's no reason to have it
> as "roll" doesn't modify cx, except of course if you're doing
> `rol %cl,%ecx', which is unlikely but quite legal. BTW, the
> "r" constraint can be relaxed to "g" here to give gcc a little more
> latitude with register allocation.
>
<snip>

Huh? I thought CAST support was broken and only included to motivate
people to fix it to use the CryptoAPI? Please tell me if that has
changed!

Marc

-- 
Marc Mutz <Marc@Mutz.com>        http://marc.mutz.com/Encryption-HOWTO/
University of Bielefeld, Dep. of Mathematics / Dep. of Physics

PGP-keyID's: 0xd46ce9ab (RSA), 0x7ae55b9e (DSS/DH)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:38 EST