Re: Immediate values

From: H. Peter Anvin
Date: Thu Sep 24 2009 - 12:53:35 EST


Jason Baron wrote:

that's right. The optimal solution doesn't require the the NOP5 at all,
and I've been playing around with an implementation that doesn't have
it. The problem I've been running into is that sometimes the compiler
will put in a short jump - '0xeb', with a 1 byte offset, but the jump
target is further away. Thus, I need to either ensure the target is
close, or somehow force a longer jump '0xe9' into the code so I always
have the space. The other advantage of not including the nop is easier
support for all x86 implementations, since I'm not sure a 5 byte atomic
nop is always available, whereas a jump is always atomic. I'm pretty
sure we can come up with a patch that avoids the nop...I'll keep working
on it.


Unfortunately gas doesn't have any equivalent of the NASM "strict" operand modifier, which would be ideal here. The following *seems* to work on binutils-2.18.50.0.9-8.fc10.x86_64 at least:

.byte 0xe9
.long %0-1f
1:

-hpa

--
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/