yury
|
e3d9dbbeef
* Removed unused vars.
|
9 years ago |
svenbarth
|
37c32f4b61
* generate indirect symbols for interface IID and IIDSTR (fixes cycling; I wonder why that worked on Windows without problems :/ )
|
9 years ago |
svenbarth
|
fb6546972b
* IID and IIDStr references of the VMT's interface table need to be indirect
|
9 years ago |
svenbarth
|
77de5dd968
* reference assembler symbol of FPC_EMPTYMETHOD using AB_EXTERNAL and not AB_GLOBAL
|
9 years ago |
svenbarth
|
2841cd9a9e
* export IID and IIDSTR symbols of interfaces
|
9 years ago |
svenbarth
|
971d05c898
* also import procdefs that are called through the VMT
|
9 years ago |
svenbarth
|
f69b365b77
* declare various symbols as external assembler symbols: RTTI references, parent VMT, FPC_EMPTYMETHOD (all three only if it's used from a different unit), threadvar lists and symbols declared as "external"
|
9 years ago |
svenbarth
|
bb72c1c4df
* declare various assembler symbols (VMT, RTTI, threadvars) as public assembler symbols
|
9 years ago |
svenbarth
|
685f820622
* switch class'/object's parent reference in the VMT to an indirect reference
|
9 years ago |
svenbarth
|
dc21bc842a
* also generate an indirect symbol for the VMT
|
9 years ago |
Jonas Maebe
|
a0efde8167
* automatically generate necessary indirect symbols when a new assembler
|
9 years ago |
Jonas Maebe
|
1cb8c0d00c
* specify the def of assembler level symbols defined via
|
9 years ago |
Jonas Maebe
|
c0ff55e95a
* changed the abstract method wrapper generation from thlcgobj to synthetic
|
9 years ago |
svenbarth
|
7a5bac9cd3
Rework the interface table of VMTs to get rid of FPC_EMPTYINTF.
|
9 years ago |
svenbarth
|
345d83c3e3
Merge RTTI changes from packages branch (including adjustments that were required due to changes in trunk since then). These changes favor source backwards compatibility in contrast to Delphi compatibility. Binary compatiblity is however drastically broken due to the indirect references that are platform independant!
|
9 years ago |
svenbarth
|
9857a27ad8
Generate and use an indirect symbol for VMTs.
|
9 years ago |
svenbarth
|
557f74cdbd
(Note to self: always include the root of the working copy in the commit when dealing with merges -.-)
|
9 years ago |
Jonas Maebe
|
7b89072d88
* fixed external wrapper generation on llvm
|
9 years ago |
yury
|
b26fa07f1a
* Fixed notes "var is assigned but not used".
|
10 years ago |
Jonas Maebe
|
919bce9819
* also construct the high level code generator for high level targets; they
|
10 years ago |
Jonas Maebe
|
c7a418829b
* support for implementing interface method wrappers at the node tree
|
10 years ago |
Jonas Maebe
|
be2ec5be59
* write full/init rtti and VMTs separately instead of at the same time
|
10 years ago |
Jonas Maebe
|
b4e61b2469
* enable the llvm code generator for VMT generation
|
10 years ago |
Jonas Maebe
|
2cfc3ca4d1
* end the vmtdef aggregate so appropriate padding is inserted (if necessary)
|
10 years ago |
Jonas Maebe
|
6f4fe415e9
* support specifying the alignment of the start of an anonymous record
|
10 years ago |
Jonas Maebe
|
b55c7df996
* factored out internal type prefixes
|
10 years ago |
Jonas Maebe
|
508828958c
* changed getprocaddressprocvar() into a tprocvardef.getreusableprocaddr()
|
10 years ago |
Jonas Maebe
|
f40ea04540
* changed getarraydef() into a tarraydef.getreusable() class method
|
10 years ago |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
10 years ago |
Jonas Maebe
|
3597e710b6
* fixed several VMT element types to correspond to the types used to
|
10 years ago |