| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48833 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
implicit pointer tpe
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48832 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48391 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48385 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48384 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47103 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
o fixes lazarus startup on macOS/AArch64 when compiled with the LLVM cg
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46675 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
| |
only comments in the external assembler output. Moved handling of these instructions to TExternalAssembler.WriteComments().
This eliminates code duplication and improves maintainability.
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46550 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
|
| |
+ added support for constructing target triplets
* pass "-target triplet" when using an LLVM assembler
o removed no longer needed $DARWINVERSION and $ARCH parameters
* consistently use as_clang_gas when clang is used to assembler GAS-style
assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
* support pipe assembling when using clang on *nix in all cases
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45807 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45488 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
* Added the tprocdef.parentfpsym property. Set parentfpsym.varstate to vs_read instead of using the pio_needs_parentfp flag.
* Replaced tcgcallparanode.push_zero_sized_value_para by tparamanager.has_strict_proc_signature.
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45454 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
| |
ReplaceForbiddenAsmSymbolChars that limits the
output label to that length
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/z80@45066 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
o it can be used for more than integer parameters
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43781 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
procedure (based on a patch by Blaise.ru)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43674 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
register hacking
o this also allowed fixing/adding safecall support for LLVM
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43578 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
is handled automatically nowadays
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42998 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
| |
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42917 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42322 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\
| |
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42119 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| | |
{$modeswitch arraytodynarray} is active (mantis #35576)
o changed compiler to compile without this modeswitch
o added the modeswitch to a test that depends on it
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42118 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42050 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| | |
be introduced by the next commit
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42046 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41886 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| | |
overrides but before generating the VMT, so that these hidden parameters
are part of the procdefs stored in the VMT (fixes some LLVM type errors
after r41716)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41884 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41867 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| | |
trouble when the ppu version hits 255
* also moved several ppu flags to a set inside that section
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41846 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41726 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| | |
so that they take into account inherited calling conventions (mantis #35233)
o don't needlessly calculate the paraloc info when generating a JVM mangled
name
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41716 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41424 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
procoptions even when it's through an array-of-const parameter
* always call create_varargs_paraloc_info() instead of create_paraloc_info()
in the former case, even when no varargs parameters are specified (because
on some platforms even some non-variadic parameters need to be passed
differently, such as on ARM with gnueabihf)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41420 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40776 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
on pdecsub (node units should not depend on parser units):
o maybe_add_public_default_java_constructor()
o handle_calling_convention()
o create_finalizer_procdef() (replaced with create_outline_procdef())
o insert_record_hidden_paras()
o handle_calling_convention()
o proc_add_definition()
o build_parentfpstruct()
o maybe_guarantee_record_typesym()
o get_first_proc_str()
* factored out the creation of a procinfo for a nested procdef based on a
subnodetree of the current procdef into tprocinfo.create_for_outlining()
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40773 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40772 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40733 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| | |
sense as a function (the original input needed to be replaced by its
result to make any sense), and someone already mistakenly used it like that
in htypechk causing a bug/memory leak
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40729 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40643 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| | |
parentfpstruct the same as regular function results (see r32687)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40641 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40636 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| | |
hiding the method name of the wrapped routine
o also add a few more '&' prefixes to the generated wrapper code to
prevent issues when keywords are used as identifiers
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40634 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
hlcgllvm in the uses clause of every unit that calls create_hlcodegen
o prevents dependency cycles that can cause llvm codegen units to init
before the cpu variants, which is bad since the llvm versions have to
override the cpu variants in their init code (+ added checks in the
init code that they are in fact initialised later)
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40410 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40387 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| | |
is forbidden there
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40386 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|\ \
| |/
| |
| | |
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40349 3ad0048d-3df7-0310-abae-a5850022a9f2
|
| |
| |
| |
| |
| |
| | |
* MatchOpType with three operands is only available of max_operands>2
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40190 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|/
|
|
|
|
| |
for the Dwarf EH exception handler result
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40070 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
new internal pasbool1(type) (part of mantis #34411)
o apply the _Bool x86-64 parameter passing rules only to pasbool1
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39949 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38814 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
| |
tcpuparamanager, very similar to the existing get_volatile_registers_XXX. The
new methods are called get_saved_registers_XXX, where XXX is the register
type ("int", "address", "fpu" or "mm")
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38794 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38671 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
so that they cannot result in "cmp const, const" at the assembler level
(mantis #33548)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38662 3ad0048d-3df7-0310-abae-a5850022a9f2
|