Re: [PATCH 2/8] i386: bitops: Rectify bogus "Ir" constraints

From: Andi Kleen
Date: Mon Jul 23 2007 - 12:10:41 EST


On Monday 23 July 2007 18:05:38 Satyam Sharma wrote:
> From: Satyam Sharma <ssatyam@xxxxxxxxxxxxxx>
>
> [2/8] i386: bitops: Rectify bogus "Ir" constraints
>
> The "I" constraint (on the i386 platform) is used to restrict constants to
> the 0..31 range, for use with instructions that must deal with bit numbers.

It means I or r, not I modified by r. This means either a immediate constant
0..31 or a register, which is correct.

% cat t18.c

f()
{
asm("xxx %0" :: "rI" (10));
asm("yyy %0" :: "rI" (100));
}
% gcc -O2 -S t18.c
% cat t18.s
...
f:
.LFB2:
#APP
xxx $10
#NO_APP
movl $100, %eax
#APP
yyy %eax
#NO_APP
ret
.LFE2:
...

-Andi

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