summaryrefslogtreecommitdiff
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* Avoid range/overflow error after commit #49290pierre2021-04-301-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49298 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k: sinclair ql now requires vlink 0.16h or newer.karoly2021-04-292-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49296 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k-sinclairql: apply the same hack as for amiga and atari to avoid vlink ↵karoly2021-04-291-1/+2
| | | | | | section attribute warning git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49295 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k: D2 is considered volatile on macosclassickaroly2021-04-291-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49294 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add -TFreeBSD target OS option to -h output for aarch64 compiler ppc64pierre2021-04-293-52/+52
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49293 3ad0048d-3df7-0310-abae-a5850022a9f2
* Also check *.pas and *.inc files inside sub-directories in msgused.plpierre2021-04-291-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49292 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by J. Gareth Moreton: AArch64 "magic division"florian2021-04-291-84/+319
| | | | | | (replace division by constant with multiplication), part of #38806 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49290 3ad0048d-3df7-0310-abae-a5850022a9f2
* Use as-clang as idtxt for as_aarch64_clang_gas_infopierre2021-04-281-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49287 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add several missing -AXXX optionspierre2021-04-283-138/+166
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49286 3ad0048d-3df7-0310-abae-a5850022a9f2
* * avoid overflow during register allocationflorian2021-04-281-4/+8
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49285 3ad0048d-3df7-0310-abae-a5850022a9f2
* Avoid warning with -O4 optionpierre2021-04-281-0/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49284 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix compilation of arm compiler on 32 bit hostsflorian2021-04-271-4/+12
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49281 3ad0048d-3df7-0310-abae-a5850022a9f2
* Set string length before calling move to avoid problems with global data ↵pierre2021-04-272-1/+5
| | | | | | analysis on systems using C library git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49280 3ad0048d-3df7-0310-abae-a5850022a9f2
* Make sure nf_usercode_entry get transferred inside firstpass procedurepierre2021-04-271-0/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49279 3ad0048d-3df7-0310-abae-a5850022a9f2
* Avoid range check error inside genitem_thumb2 by changing local variable i typepierre2021-04-271-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49278 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k: fixed a comment. no functional changekaroly2021-04-271-2/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49275 3ad0048d-3df7-0310-abae-a5850022a9f2
* Disable overflow/range check in some part of the arm codepierre2021-04-262-3/+7
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49274 3ad0048d-3df7-0310-abae-a5850022a9f2
* Avoid invalid typecast if hp is not an instructionpierre2021-04-261-4/+5
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49273 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add .force_thumb pseudo-directive support forarm readerpierre2021-04-263-1/+16
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49271 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add a second handling of NIL entries in deflistpierre2021-04-261-7/+10
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49270 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add -march=XXX option for aarch64 external assemblerspierre2021-04-261-3/+41
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49269 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by Christo Crause to fix #38789: writing of linker commands should ↵florian2021-04-261-2/+17
| | | | | | not depent in -s git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49267 3ad0048d-3df7-0310-abae-a5850022a9f2
* * decrease macro nesting counter early when expanding empty macroflorian2021-04-251-5/+14
| | | | | | to avoid errors about too depth macro nesting, resolves #38802 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49265 3ad0048d-3df7-0310-abae-a5850022a9f2
* * prevention of dangling pointers and use after free after ↵nickysn2021-04-251-0/+5
| | | | | | free_unregistered_localsymtable_elements git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49262 3ad0048d-3df7-0310-abae-a5850022a9f2
* + Aarch64: directly inline code for frac(...)florian2021-04-251-12/+36
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49261 3ad0048d-3df7-0310-abae-a5850022a9f2
* + Aarch64: use frintz for int(...) instead of creating a helper callflorian2021-04-251-1/+23
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49260 3ad0048d-3df7-0310-abae-a5850022a9f2
* * workaround for the raise node generating invalid WebAssembly code fornickysn2021-04-241-4/+5
| | | | | | | | | | | | obtaining the current address. Note that exception handling in WebAssembly doesn't work. This only fixes the raise node enough to generate valid (but not correct) WebAssembly code. This is a temporary fix to allow the SysUtils unit to be compiled. Eventually, exception handling for WebAssembly will need to be rewritten entirely, in order to make exceptions work properly. git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49259 3ad0048d-3df7-0310-abae-a5850022a9f2
* * override the raise node for WebAssembly and copy the generic pass_1nickysn2021-04-241-2/+69
| | | | | | | | implementation. No functional changes. git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49258 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fix gotpcrel relocation for TESTQ x86_64 instructionpierre2021-04-232-1/+14
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49252 3ad0048d-3df7-0310-abae-a5850022a9f2
* * NDS: fix condition when to default to apptype arm9svenbarth2021-04-231-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49248 3ad0048d-3df7-0310-abae-a5850022a9f2
* Remove unused, obsolete -dBROWSERLOG optionpierre2021-04-223-3/+3
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49246 3ad0048d-3df7-0310-abae-a5850022a9f2
* * moved warning about suspicious comp assignment to type check pass, ↵florian2021-04-212-5/+4
| | | | | | | | catches also assignments of constants git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49242 3ad0048d-3df7-0310-abae-a5850022a9f2
* * AArch64: fix storing a 32 bit value in the lower 32 bits of a 64 bitjonas2021-04-191-1/+2
| | | | | | subsetreg (mantis #38766) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49236 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by J. Gareth Moreton: AArch64 OptPass1Shift register tracking ↵florian2021-04-191-7/+15
| | | | | | fault fix, resolves #38691 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49235 3ad0048d-3df7-0310-abae-a5850022a9f2
* sinclairql: support the upcoming QL binary linking feature of vlink (still ↵karoly2021-04-193-3/+24
| | | | | | in development). it's behind an undocumented -WL switch now. also, reduce the amount of used dataspace by the size of the relocation table in the current linking mode git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49234 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k: added support to references like (a0,d0.w) in inline assembly, also ↵karoly2021-04-195-29/+42
| | | | | | fixed a bug, where sometimes the index register would have been randomly set as smaller than .l size, when the size wasn't specified git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49233 3ad0048d-3df7-0310-abae-a5850022a9f2
* * if left is a smaller type, then an extension operation for shr can be removedflorian2021-04-181-14/+30
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49231 3ad0048d-3df7-0310-abae-a5850022a9f2
* Handle NIL entries in deflist after commit 48986pierre2021-04-184-22/+36
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49230 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add systems_openbsd to suppported_targets_x_smallr and modify ↵pierre2021-04-182-2/+5
| | | | | | GenerateExecutable in t_bsd unit accordingly git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49229 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fix for Mantis #38771: the owner of the procdef might be Nil in case of a ↵svenbarth2021-04-181-1/+2
| | | | | | | | specialization (that virtual can't be used on generics is caught later on) + added test git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49228 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add fForceUseForwardSlash to TLinkRes class, used for vlink linker on hosts ↵pierre2021-04-177-7/+31
| | | | | | using backslashes git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49223 3ad0048d-3df7-0310-abae-a5850022a9f2
* * avoid leaving a dangling pointer in pparautl.proc_add_definition to preventnickysn2021-04-171-0/+5
| | | | | | | | use after free in different parts of the compiler git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49222 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fixed the value passing of record parameters with non-scalar value size on thenickysn2021-04-171-1/+1
| | | | | | | | WebAssembly target git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49218 3ad0048d-3df7-0310-abae-a5850022a9f2
* + fixed code generation for high(dynarray) for the WebAssembly targetnickysn2021-04-171-1/+61
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49217 3ad0048d-3df7-0310-abae-a5850022a9f2
* * fixed the support for infinity and nan float literal values in the webassemblynickysn2021-04-161-2/+2
| | | | | | | | llvm-mc asm writer git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49213 3ad0048d-3df7-0310-abae-a5850022a9f2
* + Aarch64: completed LSE support for all interlocked operationsflorian2021-04-165-13/+69
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49212 3ad0048d-3df7-0310-abae-a5850022a9f2
* m68k: always use ELF objects with vasm for improved cross-compatibility with ↵karoly2021-04-161-5/+4
| | | | | | other tools and compilers git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49210 3ad0048d-3df7-0310-abae-a5850022a9f2
* * AArch64: fix spilling integer registers to stack offsets that cannot bejonas2021-04-141-3/+5
| | | | | | | encoded directly into the spilling instructions (second part of mantis #38053) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49207 3ad0048d-3df7-0310-abae-a5850022a9f2
* * AArch64: fixed spilling info for MOVK (part of mantis #38053)jonas2021-04-141-1/+7
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49206 3ad0048d-3df7-0310-abae-a5850022a9f2
* + optimized multiplication for "symmetric" bit patterns on armflorian2021-04-131-2/+36
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49199 3ad0048d-3df7-0310-abae-a5850022a9f2