Can data embed in the instruction stream ?
Mon Apr 28 11:46:00 GMT 2008
> I am wondered whether a binary, especially the one produced by a
> compiler, can have *data* embedded in its instruction stream.
> I believe there can be but is there a real example ?
> jump table may not be the correct example, as every time the compiler
> generates a jump table in assembly file, it will put a .rodata directive
> before generating the data in jump table. So it actually residents in
> rodata section, not text.
> I want to have a full description of the example, or even better, a
> binary file illustrating the example.
Some arches load constants with simple PC-relative memory reads, and these
typically have a range of only a fe kbytes from the PC. In large functions
we have to insert these into the function body and jump around them. See
arm_reorg in gcc/config/arm/arm.c.
More information about the Gcc-help