[fpc-pascal] Get all caller adresses of a given function/procedure before executing

Rainer Stratmann RainerStratmann at t-online.de
Sat Aug 11 16:14:52 CEST 2012

Am Saturday 11 August 2012 14:46:53 schrieb Martin:
> On 11/08/2012 13:32, Rainer Stratmann wrote:
> > Am Saturday 11 August 2012 14:15:11 schrieb Martin:
> >> If that changes, then your code fails.
> >
> > I can easily adopt the code then.
> > There are not many different ways for a call.
> >
> > http://css.csail.mit.edu/6.858/2011/readings/i386/CALL.htm
> Yes, so the amount of effort may increase drastically. New CPU may bring
> new ways too.

But not the 80x86 CPU. It is still the same opcode for a call ($E8).
By now since 36 Years.

What do you mean with drastically?
At the moment there is no unsolved whish to this topic.

> And with each added way, the already existing risk of false positives
> (the byte sequence can occur as subset of another statement, and then it
> isn't a call at all) does increase.

Note that it is only added to the table if also the adress is equal.
I am aware of 2 byte opcodes, but I see no obstacle in this.

If there are very unlikely more results then expected it will not be a 
problem. The search through the whole program is mainly for me if adding new 
text snippets or a complete new language.

I will be able to solve most requirements, because I am an experienced 
programmer. On assembler language, too.

More information about the fpc-pascal mailing list