http://www.freepascal.org/docs-html/prog/progsu168.html#x212-2250008.2.13
Table 8.6 is the class instance memory layout and 8.7 is the class vmt
which has info on it's name and ancestor classes.
Andrew,
the page says:
8.2.13 Class types
<http://www.freepascal.org/docs-html/prog/prog.html#QQ2-212-239>
Just like objects, classes are stored....
Look like it is referring to a TClass instance instead of an TObject
instance but thanks a lot for pointing me into the right direction.
My second newbie question is, in modern day CPUs and fpc compiler, are
optimized code generated for fpc program to cleverly use the available
registers and instructions to look up method address of an object when
the method is called, so that Object oriented language code can now run
as fast as procedural languages?
I don't know assembly so cannot tell from the asm generated for the
sample program:
# [18] t := TTest.Create;
movl $VMT_TVMTPTR_TTEST,%edx
movl $0,%eax
call SYSTEM_TOBJECT_$__CREATE$$TOBJECT
movl %eax,U_TVMTPTR_T
With modern CPU, can the above 4 lines be further optimized?
Dennis
Regards,
Andrew Haines
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2014.0.4745 / Virus Database: 4007/8083 - Release Date: 08/22/14
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel