Re: Immediate values

H. Peter Anvin
2009-09-24T16:53:27Z

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