On Thu, 23 Aug 2018 09:32:58 +0200
Florian Klämpfl <flor...@freepascal.org> wrote:

> Am 21.08.2018 um 11:42 schrieb Marco Borsari via fpc-pascal:
> > Il 20/08/2018 17:32, Giuliano Colla ha scritto:
> > 
> >> On the Intel architecture you cannot perform pointer arithmetic as if a
> >> pointer were just a number.
> >> A pointer is composed of two parts: a "selector" and an "offset", which
> >> must be handled separately.
> > 
> > Ah, I saw, 32 bit segmentation is quite complicated.
> > Thank you twice, Marco
> 
> I still miss the point of a hand coded branch table ...

It would be for the Wirth optimization in the access of an array,
when the index is 0 or 1, allowing the elimination of a multiplication.

case idx of
0: (*adr:=adr*);
1: adr:=adr+lel;
end
else adr:=adr+idx*lel;

It's half for paranoia and half for the desire to learn, I am sorry,
Marco
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to