This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: The ".value" directive
On Nov 30, 2011, at 4:18 PM, Ian Lance Taylor wrote:
> Amittai Aviram <amittai.aviram@yale.edu> writes:
>
>> What does the ".value" directive mean and what is it for? The assembly code I'm looking at is for x86_64, if that makes a difference. Thanks!
>
>
> It puts a two byte value into the output section. E.g.,
>
> short x = 1;
>
> might generate
>
> x:
> .value 1
>
> Ian
Thanks, Ian. I don't quite follow your example--I would have expected
short x = 1;
to result in something like
push $1
with the stack pointer at the appropriate address. But, looking at the objdump disassembly of my code, I think I can see what you mean. The two-byte value is simply written into the code at that point as the next instruction. In this case, the value is 0x0f0b, which is, indeed, the "invalid opcode" instruction (UD2), and makes sense in this context as a low-level exception mechanism.
Amittai Aviram
PhD Student in Computer Science
Yale University
646 483 2639
amittai.aviram@yale.edu
http://www.amittai.com