summaryrefslogtreecommitdiff
path: root/compiler/jvm
Commit message (Collapse)AuthorAgeFilesLines
* * the new constant string arraydefs are also implicit pointers types for JVMjonas2021-02-271-1/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48833 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fixed JVM stack height calculation after calls returning anjonas2021-02-271-0/+4
| | | | | | implicit pointer tpe git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48832 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Removed/ifdefed the assigned and unused variables.yury2021-01-242-5/+0
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48391 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Corrected visibility of overridden methods.yury2021-01-241-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48385 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Removed/ifdefed lots of unused variables.yury2021-01-244-8/+3
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48384 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by Marģers to unify internal error numbers, resolves #37888florian2020-10-137-16/+16
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47103 3ad0048d-3df7-0310-abae-a5850022a9f2
* * emit the correct declaration for procdefs used to force a procname in LLVMjonas2020-08-231-2/+2
| | | | | | 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
* * ait_comment,ait_regalloc,ait_tempalloc,ait_varloc instructions produce ↵yury2020-08-221-42/+2
| | | | | | | | 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
* * mark all external assemblers using an LLVM tool using af_llvmjonas2020-07-191-0/+45
| | | | | | | | | | | + 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
* * fix several double ;florian2020-05-241-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45488 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Do not use the LOC_VOID location to indicate unused parameters.yury2020-05-212-9/+7
| | | | | | | * 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
* + introduced labelmaxlen in tasminfo and added code in ↵nickysn2020-04-251-0/+1
| | | | | | | | | | 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
* * renamed getintparaloc to getcgtempparalocjonas2019-12-241-2/+2
| | | | | | 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
* * move the common sequence to build a VMT for an objectdef into a separate ↵svenbarth2019-12-111-8/+2
| | | | | | procedure (based on a patch by Blaise.ru) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43674 3ad0048d-3df7-0310-abae-a5850022a9f2
* * cleaned up safecall support: use a hidden localvarsym instead of resultjonas2019-11-241-2/+17
| | | | | | | 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
* - remmoved doregister parameter from t*sym constructors, as the registrationjonas2019-09-142-15/+15
| | | | | | is handled automatically nowadays git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42998 3ad0048d-3df7-0310-abae-a5850022a9f2
* somehow committing went wrong, second part of last commit:florian2019-09-031-1/+0
| | | | | | | | | | + 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
* Systematically include fpcdefs.inc at sart of all units used by compilerpierre2019-07-031-0/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42322 3ad0048d-3df7-0310-abae-a5850022a9f2
* * synchronised with trunk till r42118jonas2019-05-251-1/+1
|\ | | | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42119 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * disable regular array -> dynamic array type coversion support unlessjonas2019-05-251-1/+1
| | | | | | | | | | | | | | | | {$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
* | * synchronised with trunk till r42049jonas2019-05-1211-10/+52
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42050 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * fix case completeness and unreachable code warnings in compiler that wouldjonas2019-05-1211-10/+52
| | | | | | | | | | | | be introduced by the next commit git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42046 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r41885jonas2019-04-161-2/+0
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41886 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * insert the hidden parameters for objectdef methods after resolvingjonas2019-04-161-2/+0
| | | | | | | | | | | | | | | | 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
* | * synchronised with trunk till r40776jonas2019-04-131-1/+1
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41867 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * added extra header to ppu inside a subsection, so we won't run intojonas2019-04-061-1/+1
| | | | | | | | | | | | | | 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
* | * synchronised with trunk till r41725jonas2019-03-173-24/+14
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41726 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * only add hidden parameters for objectdef methods after generating the vmt,jonas2019-03-163-24/+14
| | | | | | | | | | | | | | | | 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
* | * synchronised with trunk till r41423jonas2019-02-231-4/+11
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41424 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * keep track of whether a routine has a C-style variadic parameter in thejonas2019-02-231-4/+11
| | | | | | | | | | | | | | | | | | | | 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
* | * synchronised with trunk till r40775jonas2019-01-053-137/+142
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40776 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * moved around/replaced the following procedures to stop nflw from dependingjonas2019-01-053-136/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * * moved handle_calling_convention() to pparautljonas2019-01-051-1/+1
| | | | | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40772 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r40732jonas2019-01-011-2/+2
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40733 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * changed reverseparameters() from function into procedure: it does not makejonas2019-01-011-2/+2
| | | | | | | | | | | | | | | | 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
* | * synchronised with trunk till r40038jonas2018-12-251-0/+10
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40643 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * handle constructor function results that have been migrated to thejonas2018-12-251-0/+10
| | | | | | | | | | | | 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
* | * synchronised with trunk till r40635jonas2018-12-241-4/+4
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40636 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * when creating wrappers, add a prefix to parameter names to prevent themjonas2018-12-241-4/+4
| | | | | | | | | | | | | | | | 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
* | * changed create_hlcodegen into a procvar, so that we don't have to insertjonas2018-11-291-3/+2
| | | | | | | | | | | | | | | | | | | | 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
* | * synchronised with trunk till r40386jonas2018-11-281-2/+9
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40387 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * disable explicitly calling class constructors on the JVM platform, as thatjonas2018-11-281-2/+9
| | | | | | | | | | | | is forbidden there git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40386 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r40348jonas2018-11-181-4/+0
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40349 3ad0048d-3df7-0310-abae-a5850022a9f2
| * - get rid of MaxOps, it is redundant with max_operandsflorian2018-11-021-4/+0
| | | | | | | | | | | | * 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
* | + fpc_eh_return_data_regno() intrinsic to get the return register numbersjonas2018-10-281-0/+6
|/ | | | | | 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
* * converted Boolean8 to an internal type, and mapped Boolean to thejonas2018-10-164-5/+8
| | | | | | | 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
* * keep track of the temp position separately from the offset in references,jonas2018-04-224-8/+8
| | | | | | | 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
* * replaced the saved_XXX_registers arrays with virtual methods insidenickysn2018-04-192-11/+9
| | | | | | | | | | 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
* * moved nf_typedaddr to addrnodeflags (anf_typedaddr)nickysn2018-04-038-11/+11
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38671 3ad0048d-3df7-0310-abae-a5850022a9f2
* * simplify empty-dynamic-string-to-pointer (non-p(wide)char) type conversionsjonas2018-04-021-0/+6
| | | | | | | 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