ppu.pas:
* increase ppu version
symconst.pas:
+ new enum tmanagementoperator and set tmanagementoperators
symtable.pas, trecordsymtable:
+ new field managementoperators
+ new method includemanagementoperator
symdef.pas, trecorddef.ppuload and trecorddef.ppuwrite:
* save/load for managementoperators
git-svn-id: trunk@35439 -
a) C-blocks: they are equivalent to a voidpointertype, as they are
implicit pointer types
b) procvardefs created from static class methods (there is no
self pointer in this case)
o fixes webtbs/tw30936.pp with LLVM
git-svn-id: trunk@34977 -
tabstractprocdef.typename_paras(), after accidentally committing the
removal of the double quotes in r34358
o the reason for not using double quotes is that the output of this routine
is used for some LLVM identifier names, and you can't have double quotes in
LLVM identifiers (any other character, including space, is no problem)
git-svn-id: trunk@34392 -
and getters for the ttemp*node classes instead
o this will allow descendants to prevent certain flags from being added
or removed. E.g. for LLVM, certain temps must never be put in registers
because it cannot typecast a value in a register from a non-record/array
type to an array type without forcing it to memory (so if that is done
on an lvalue, the result will be written to the memory temp instead of
to the register)
git-svn-id: trunk@34358 -
pasbool8type for this results in too much trouble (we mustn't use i1
for parameters, because then LLVM will try to apply the ABI convention
for passing "1 bit" values, or in records because then this may
result in unwanted bitpacking). Downside: the new LLVMBool1 type is
also exposed in the system unit, because we need it to define LLVM
intrinsics...
git-svn-id: trunk@33726 -
whether the record can be kept in a register) after determining that the
record is < 2*sizeof(aword) (it's a much more expensive check, especially
for big records)
git-svn-id: trunk@33190 -
symdef.pas, tstoreddef:
* deref: don't free the deref list and it's entries as deref() might be called again when the unit reloaded a second time
git-svn-id: trunk@33054 -
Extract functionality that is shared between the metadata files for units (PPU) and for packages (PCP) into a parent class called tentryfile
+ add new unit entfile which contains the new tentryfile class and related types and constants
* ppu.pas:
- remove methods, fields, types and constants which were moved to entfile.pas
* replace the parts of tppuheader shared with tentryheader by a field of type tentryheader
fppu.pas, pmodules.pas, utils/ppumove.pp, utils/ppuutils/ppudump.pp:
+ add entfile to uses
* adjust access to common header fields
node.pas, symdef.pas, symsym.pas, symtable.pas, wpoinfo.pas, utils/ppufiles.pp:
+ add entfile to uses
........
git-svn-id: trunk@32976 -
reusable defs for defs in exceptionsymtables, or indeed use any defs from an
exceptionsymtable in the high level code generator, as those defs are freed
before the module is completely compiled -> crashes while trying to use them
in the assembly writing phase ->
o when the symtablestack top is an exception symtable, keep looking for
another symtable to put the def in
o give an internalerror if we encounter a def in an exceptionsymtable anyway
in getreusablesymtab
git-svn-id: trunk@32401 -
an exception symtable (then the new def cannot be safely made reusable,
as the exception symtable may be freed before the module is completely
compiled)
git-svn-id: trunk@32340 -
"don't free even if not registered"; use for defs that may not be written
to a ppu file, but that must nevertheless survive the compilation of the
current module
* mark all defs created for para locations as "don't free even if not
registered", because we don't discard and recalculate all para locations
after a module has been compiled (since that's not needed)
o solves issues if the paralocations for a routine in the interface of
unit A are calculated while the implementation of unit B gets
compiled, and a new reusable type is allocated at that point which
is not used anywhere else (after r32160)
git-svn-id: trunk@32235 -