svenbarth
|
971d05c898
* also import procdefs that are called through the VMT
|
9 rokov pred |
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 rokov pred |
svenbarth
|
bb72c1c4df
* declare various assembler symbols (VMT, RTTI, threadvars) as public assembler symbols
|
9 rokov pred |
svenbarth
|
685f820622
* switch class'/object's parent reference in the VMT to an indirect reference
|
9 rokov pred |
svenbarth
|
dc21bc842a
* also generate an indirect symbol for the VMT
|
9 rokov pred |
Jonas Maebe
|
a0efde8167
* automatically generate necessary indirect symbols when a new assembler
|
9 rokov pred |
Jonas Maebe
|
1cb8c0d00c
* specify the def of assembler level symbols defined via
|
9 rokov pred |
Jonas Maebe
|
c0ff55e95a
* changed the abstract method wrapper generation from thlcgobj to synthetic
|
9 rokov pred |
svenbarth
|
7a5bac9cd3
Rework the interface table of VMTs to get rid of FPC_EMPTYINTF.
|
9 rokov pred |
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 rokov pred |
svenbarth
|
9857a27ad8
Generate and use an indirect symbol for VMTs.
|
9 rokov pred |
svenbarth
|
557f74cdbd
(Note to self: always include the root of the working copy in the commit when dealing with merges -.-)
|
9 rokov pred |
Jonas Maebe
|
7b89072d88
* fixed external wrapper generation on llvm
|
9 rokov pred |
yury
|
b26fa07f1a
* Fixed notes "var is assigned but not used".
|
10 rokov pred |
Jonas Maebe
|
919bce9819
* also construct the high level code generator for high level targets; they
|
10 rokov pred |
Jonas Maebe
|
c7a418829b
* support for implementing interface method wrappers at the node tree
|
10 rokov pred |
Jonas Maebe
|
be2ec5be59
* write full/init rtti and VMTs separately instead of at the same time
|
10 rokov pred |
Jonas Maebe
|
b4e61b2469
* enable the llvm code generator for VMT generation
|
10 rokov pred |
Jonas Maebe
|
2cfc3ca4d1
* end the vmtdef aggregate so appropriate padding is inserted (if necessary)
|
10 rokov pred |
Jonas Maebe
|
6f4fe415e9
* support specifying the alignment of the start of an anonymous record
|
10 rokov pred |
Jonas Maebe
|
b55c7df996
* factored out internal type prefixes
|
10 rokov pred |
Jonas Maebe
|
508828958c
* changed getprocaddressprocvar() into a tprocvardef.getreusableprocaddr()
|
10 rokov pred |
Jonas Maebe
|
f40ea04540
* changed getarraydef() into a tarraydef.getreusable() class method
|
10 rokov pred |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
10 rokov pred |
Jonas Maebe
|
3597e710b6
* fixed several VMT element types to correspond to the types used to
|
10 rokov pred |
Jonas Maebe
|
3f736f6114
* handle the loading of VMT entries at the node level, so it's done in a
|
10 rokov pred |
Jonas Maebe
|
bd8079f896
* cache and reuse procvardefs internally created to get the address of a
|
10 rokov pred |
Jonas Maebe
|
3be51e1455
* fixed endless recursion in tabstractrecorddef.contains_float_field() in
|
10 rokov pred |
nickysn
|
9c52c98b77
* use default_settings.packrecords, instead of 0 (since that's different for
|
10 rokov pred |
Jonas Maebe
|
69e7b06cef
* converted rest of VMT generation to high level typed const builder
|
10 rokov pred |