This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Can data embed in the instruction stream ?


wuxi wrote:
> Hi:
> 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.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]