compiled for that target (which is unrelated to SQLite, but that
set is also used to determine whether or not to compile fbindexdb,
which depends on that unit -- please fix the dependencies properly
when adding new units)
git-svn-id: trunk@20668 -
in LOC_CMMREGISTER, not in LOC_CFPUREGISTER (and they also are there in
case the softfp calling convention is used), and this change broke SPARC
git-svn-id: trunk@20667 -
for inherited calls (that is only required when not using them for
dispatch purposes, and calling an inherited method is obviously
a dispatch situation)
git-svn-id: trunk@20664 -
always points to the previous r7 on the stack (with the saved return
address coming right after it) so that the debugger and crashreporter
can use it for backtraces as specified in the ABI
o changed NR_FRAME_POINTER_REG and RS_FRAME_POINTER_REG from a symbolic
into a typed constant, and added a new method to tprocinfo that can
be used to initialze it (so it can be inited to r7/r11 depending on
the target platform)
* allow using r9 on Darwin, it was only used by the system on iOS up to
2.x, which we no longer support
* prefer using r9 and r12 before r4..r11 on Darwin, because they are
volatile and hence do not have to be saved
git-svn-id: trunk@20661 -
o new eabihf (hard float) abi
o vfpv3_d16 variant of VFP (default variant used by EABI assemblers: VFPv3
with only 16 double registers instead of 32) and pass it to GNU as
o make the odd numbered single precision floating point VFP registers
available for explicit allocation for use by the calling convention
* fixed copy/paste error in stdname of S30 register
-> use -dFPC_ARMHF to create an ARM eabi hard float compiler
(mantis #21554)
git-svn-id: trunk@20660 -
--This line, and those below, will be ignored--
M win/wininc/unidef.inc
M win/wininc/ascfun.inc
M win/wininc/ascdef.inc
M win/wininc/unifun.inc
git-svn-id: trunk@20655 -
example: %OPT=-gl win32%-WN
if % is found in OPT list, the string after % is only added
to the compiler options if current target is
contained in the list of the string before the % sign.
+ Add %DELOPT dotest option.
can be used in two variants
%DELOPT=-Crio
will suppress -Criot from TEST_OPT if it appears exactly
(-Criot will not match).
%DELOPT=-C* will suppress all options starting with -C.
git-svn-id: trunk@20640 -
in code and not in constants. In the case of primitive types constant nodes
are used while complex types like arrays, records and objects use a local
variable which is initialized to zero once at the entry of the method (the
variable is reused if Default() is used for the same type multiple times in
the same method). For this a new compilerproc was added which uses FillChar
to initialize the given memory area to zero.
This fixes Mantis #9420.
+ psystem.pas: Added Default symbol to system unit
+ htypechk.pas: Added function "is_valid_for_default" which checks recursively
whether the given type can be used with Default at all.
Forbidden types are files, helpers, ObjC and C++ types. This
check is used for records, arrays and objects only if the mode
is a non-Delphi one, as Delphi ignores these types on lower
levels.
+ msg/errore.msg: Added error message for unsupported types for Default()
+ symconst.pas: Added a new enum value vo_is_default_var which is used for the
local variables utilized by Default() so their initalization
and finalization can be avoided.
+ pexpr.pas: Add handling of Default() intrinsic to "statement_syssym"
+ ninl.pas: Extended tinlinenode by a method which returns the correct node for
a Default() and used that method in handle_typecheck.
* ncgutil.pas: Check for new flag "vo_is_default_var" when initializing and
finalizing local variables.
* ppu.pas: increase PPU version
+ psub.pas:
* Added a new routine which zeros defaultvars of a symtable.
* Use this routine inside "initializevars".
* Also use this routine to initialize the staticsymtable of the unit/program.
* Adjusted ppudump, because of the new enum value.
+ Added implementation of fpc_zeromem to system unit.
+ Added tests for Default()
git-svn-id: trunk@20629 -
the top-level fpmake.pp
* replaced commands to regenerate fpmake*.inc in top level fpmake.pp with
ones that don't depend on GNU awk, and which automatically recognize
nested fpmake files that contain their own add_XXX procedure and hence
must not get a wrapper
* regenerated fpmake*.inc so that fpindexer and opengles are now also
built, and dblib/fpmake.pp does not get a wrapper
git-svn-id: trunk@20625 -
self parameter for invoking inherited method calls (if you are in a
category method or a method of a child class, the extended or parent
class must have already been loaded by the run time, so we can
directly load the ISA pointer rather than detouring via the "class"
method)
git-svn-id: trunk@20624 -
0, just like gcc/clang. This results in more efficient code on
non-fragile ABI platforms and removes a dependency of the name
of the isa field in header translations
git-svn-id: trunk@20623 -
involved and the classes are not exactly equal (but one is a child of the
other): we have to look up the real class definition first in those cases
git-svn-id: trunk@20622 -