Commit Graph

21549 Commits

Author SHA1 Message Date
Karoly Balogh
25166cf7ca build fix of ppudump after 313643ea1c 2022-03-24 09:56:43 +01:00
Pierre Muller
313643ea1c Add trunk only system_CPU_OS values to ensure that the same integervlaue is uused for system_aarch64_darwin 2022-03-24 07:25:51 +00:00
Jonas Maebe
6827c4810d PPC64: fix wrong ifdef for SYSV ABI
The TOC is used by PPC64, not by PPC32. Resolves #39571

(cherry picked from commit 14289173bb)
2022-03-20 13:45:16 +01:00
Jonas Maebe
076c9b06c1 PPC64: don't save TOC in pure assembler routines
Fix by Pierre

(cherry picked from commit 0fcc57fb4b)
2022-03-20 13:45:16 +01:00
Jonas Maebe
89bf3fe5ea PowerPC32 SysV: fix abis_ppc_toc declaration
No TOC on those platforms (as mentioned in tcgppcgen.get_rtoc_offset), so also
exclude from this constant

(cherry picked from commit 2ee45c7ed8)
2022-03-20 13:45:15 +01:00
Jonas Maebe
04717861ac TOC handling: clean up
Also fix on 32 bits PowerPC

(cherry picked from commit 629c1de460)
2022-03-20 13:45:15 +01:00
florian
c565900c41 * patch by J. Gareth Moreton: handle register allocations correctly in MovMov2Mov 3, resolves #38703
git-svn-id: trunk@49128 -
(cherry picked from commit 503fc85dff)
2022-03-13 19:07:52 +01:00
Jonas Maebe
3ac4270c23 ppc platforms: fix missing TOC restoration room
PPC platforms that use a TOC can never use a tail call to call a different
routine that potentially accesses globals, as it may use a different TOC and
then the linker must be able to insert an instruction after the branch to
restore the original TOC register value on "return". Even if FPC code itself
does not use the TOC register, it's still required since
  1) the linker does not know this, and
  2) the FPC code might still be called from other code that does use it

(cherry picked from commit 68b5ca633c)
2022-03-04 21:33:08 +01:00
Jonas Maebe
edbe69c3ef ppc64: fix rtoc handling
Save on procedure entry if it performs a call, rather than (only) before every
indirect call

(cherry picked from commit 83c18df69a)
2022-03-04 21:33:08 +01:00
florian
59b078fce3 * compilation hopefully fixed
(cherry picked from commit 9314bbbf08)
2022-03-04 21:33:08 +01:00
Jonas Maebe
73e8d5b39e Linux/PPC64: fix missing TOC loads
Routines loading a global symbol need the TOC register

(cherry picked from commit 2de72c8541)
2022-03-04 21:33:08 +01:00
florian
084e3e7b9a * use high level interface wrappers for powerpc64 if pic is generated as the abi does not support branches between functions located in different tocs which might happen for inter-module branches
(cherry picked from commit 12f48c230b)
2022-03-04 21:33:08 +01:00
Jonas Maebe
1c3fc6e2df * don't convert the fpu parameters size from tcgsize -> int -> float_tcgsize
if not required, to avoid translating OS_C64 into OS_F64 (fix for x86
    test failures after r45205)

git-svn-id: trunk@45221 -
(cherry picked from commit 3f6ad30b69)
2022-02-13 12:02:28 +01:00
Jonas Maebe
8a31764a7b * support floating point parameters split over multiple locations, including
integer registers, for homogeneous records/arrays on ppc64le (related to
    mantis #36934)

git-svn-id: trunk@45205 -
(cherry picked from commit 722ad1ff7b)
2022-02-13 12:01:36 +01:00
Jonas Maebe
28b2b299da * ppc64le: fix storing homogeneous 64 bit float parameters in case they are
split over just FPU registers and memory (related to mantis #36934)

git-svn-id: trunk@45204 -
(cherry picked from commit 05923af386)
2022-02-13 12:01:14 +01:00
florian
3ef2ab1019 * cleaning up tcgsize: it makes no sense to declare every combination and type
the different vector types must be either handled in the high level cg or
    by using the shuffle parameter

git-svn-id: trunk@43860 -
(cherry picked from commit b7c6e01b03)
2022-02-13 12:00:45 +01:00
Sven Barth
6279283ce1 * fix for #39310 by fixing various small issues in tabstractrecordsymtable.has_single_field:
- initialize the returned def to a safe default
  - correctly reset the found symbol for each loop
  - reset the result when descending into a record
+ added test

(cherry picked from commit efd0c250df)
2022-01-30 22:42:10 +01:00
Pierre Muller
90301426fc Avoid use of fastmath optimization inside compiler
(cherry picked from commit 91f29419a5)
2022-01-27 00:08:50 +01:00
Florian Klämpfl
8731c5f7fd * message files regenerated 2022-01-23 17:58:24 +01:00
Florian Klämpfl
5cd1c4f5bc * manually fix unwanted stripping of exception frame info based on a patch by Gareth J. Moreton 2022-01-23 17:32:40 +01:00
marcoonthegit
08bb8c8dfc * fixed spelling error implicitEly in errore.msg, regenned msg.
(cherry picked from commit 45840da4dd)
2022-01-22 18:09:05 +01:00
pierre
34a9cc229f Second trial to fix commit 48688
git-svn-id: trunk@48691 -
(cherry picked from commit acf2567bda)
2022-01-16 17:14:14 +00:00
pierre
39ba1c39be Fix previous commit 48688 to avoid accessing 'invalid' positions in sym.value.valueptr
git-svn-id: trunk@48689 -
(cherry picked from commit 34fd36f817)
2022-01-16 17:13:58 +00:00
pierre
09f6a2ad0c Avoid writing characters after sym.value.len for conststring constant symbols
git-svn-id: trunk@48688 -
(cherry picked from commit 6a408fe97e)
2022-01-16 17:13:48 +00:00
florian
7c7f2cfdea * pass float abi always to the arm assembler
git-svn-id: trunk@39996 -
(cherry picked from commit 2cbb9895be)
2022-01-10 22:29:44 +01:00
florian
d63ad582a7 * cherry picked commit did not compile, fixing it, resolves #24863 2022-01-08 23:06:11 +01:00
florian
5a17765841 * if a variant is read/written, include the variants unit
git-svn-id: trunk@47459 -
(cherry picked from commit bcdfd07bdd)
2022-01-08 22:55:18 +01:00
florian
c0f20e0e5f * do not join register deallocations/allocations as it makes no use and causes later on trouble in
the assembler optimizer as register allocations are not correct, resolves #33565
(cherry picked from commit c6659d62f8)

# Conflicts:
#	.gitattributes
2021-11-28 15:22:20 +01:00
florian
a76d096254 * workaround missing optimizer capabilites of the fixes branch to fix avr compilation with -CriotR 2021-11-21 22:57:24 +01:00
svenbarth
8b21bf1cce * fix writing of the method and parameter names for the Variant call description
git-svn-id: trunk@49479 -
(cherry picked from commit 7330a0156c)
2021-11-14 11:41:56 +01:00
Jonas Maebe
383c4a8e04 iphonesim: use ios_simulator_version_min
The linker expects ios_simulator_version_min rather than -iphoneos_version_min
when targeting the iOS simulator platform. Fixes compilation with Xcode 11
toolchains, which is more strict about this.

(cherry picked from commit 3263e12a3e)
2021-10-30 17:12:29 +02:00
Jonas Maebe
29d0a2a70a iphonesim target: requires proper alignment
Just like the native iOS targets

(cherry picked from commit 334cf9c19d)
2021-10-30 17:12:29 +02:00
florian
d9cb4be507 * last commit was wrong 2021-10-24 13:57:27 +02:00
florian
62875030b5 * hopefully i8086 compilation fixed 2021-10-24 13:50:48 +02:00
florian
feb9274963 * fix tcgobj.a_op_reg_ref and tcgobj.a_op_ref_reg after recent avr related merges 2021-10-24 12:40:38 +02:00
nickysn
c9d2028ebd * handle LOC_(C)SUBSETREG/REF in second_NegNot_assign
* changed the way OP_NEG and OP_NOT are handled in op_reg_ref, in order to be
  consistent with op_reg_reg
* introduced op_reg,op_ref,op_subsetreg,op_subsetref and op_loc for the unary
  operations only (OP_NEG,OP_NOT)

git-svn-id: trunk@45302 -
(cherry picked from commit 0f6ab0de17)

# Conflicts:
#	compiler/cgobj.pas
2021-10-24 12:40:38 +02:00
florian
3b8df7736c * patch by Christo Crause: Passing a file name with extension to cross compiler
with -o causes error, fixed, resolves #36562

git-svn-id: trunk@43921 -
(cherry picked from commit 9926eb8dc6)

# Conflicts:
#	compiler/systems/t_embed.pas
2021-10-24 12:40:38 +02:00
Jeppe Johansen
38576b4830 * Add support for generating map files for embedded target.
git-svn-id: trunk@43866 -
(cherry picked from commit 89a961f960)
2021-10-24 12:40:38 +02:00
florian
d2d1c30b53 * patch by Christo Crause, resolves #38961, fixes the following formatting and spelling problems in the AVR compiler files:
- Change spelling of AM_PREDRECEMENT to AM_PREDECREMENT
    - Fix multiline comment style to use {}
    - Fix indenting of code in method tcgavr.g_concatcopy

git-svn-id: trunk@49474 -
(cherry picked from commit aec49340a3)
2021-10-24 12:40:38 +02:00
florian
6a653c298c * patch by Christo Crause: do not generate LDD for avrtiny, resolves #38958
git-svn-id: trunk@49473 -
(cherry picked from commit 9d6ceda532)
2021-10-24 12:40:38 +02:00
florian
235c82feaa + AVR: MovOp2Op 2 optimization
git-svn-id: trunk@49350 -
(cherry picked from commit 9bfc731bb6)
2021-10-24 12:40:38 +02:00
florian
e168707f5b * patch by Christo Crause: handle references to absolute address 0 correctly, resolves #38861
git-svn-id: trunk@49344 -
(cherry picked from commit 5e1e6c24a4)
2021-10-24 12:40:38 +02:00
florian
1333d5aea8 + patch by Dimitrios Chr. Ioannidis: include dwar-3 sections in avr-embedded linker script
git-svn-id: trunk@48659 -
(cherry picked from commit 98a748bdd6)
2021-10-24 12:40:38 +02:00
florian
0049abce42 * fix proposed by Christo Crause: properly handle pointer constant nodes on avr, resolves #38321
git-svn-id: trunk@48095 -
(cherry picked from commit 6d75992674)
2021-10-24 12:40:38 +02:00
florian
99588969b9 * patch by Christo Crause: Fix missed optimization opportunities, resolves #38285
git-svn-id: trunk@47925 -
(cherry picked from commit 3482121831)
2021-10-24 12:40:38 +02:00
florian
d75fb82753 * do not reuse a loaded reference for avrtiny in a_op_const*, resolves #38142
git-svn-id: trunk@47612 -
(cherry picked from commit eb098a3d11)

# Conflicts:
#	compiler/cgobj.pas
2021-10-24 12:40:38 +02:00
florian
af4eb12b43 * patch by Christo Crause to fix illegal ldd generation for avrtiny, resolves #37929
git-svn-id: trunk@47118 -
(cherry picked from commit fa54335938)
2021-10-24 12:40:38 +02:00
florian
64ff162e3f * patch by Christo Crause: r0, r1 are no volatile registers for avr tiny
git-svn-id: trunk@47102 -
(cherry picked from commit b8c707ed7e)
2021-10-24 12:40:37 +02:00
florian
35b2d80271 * avr: patch by Christo Crause: replace findreg_by_gasname with gas_regname_table, resolves #37131
git-svn-id: trunk@45509 -
(cherry picked from commit 37a3b542e6)
2021-10-24 12:40:37 +02:00
nickysn
34eb9ade91 * fix for OP_ROR in tcgavr.a_op_reg_reg_internal
git-svn-id: trunk@44749 -
(cherry picked from commit 599b7e80c0)
2021-10-24 12:40:37 +02:00