Commit Graph

24168 Commits

Author SHA1 Message Date
pierre
6230de31bb * Second patch xml-node-dump-defs.patch from J. Gareth Moreton from bug report 36882.
With same changes to ensure that xmllint find no errors in generated xml files.

git-svn-id: trunk@47667 -
2020-12-02 21:01:40 +00:00
pierre
a7fa31aa10 Fix i8086 compiler failure due to move of printnodeindention variable into verbose unit in commit #47658
git-svn-id: trunk@47664 -
2020-12-02 09:29:08 +00:00
florian
0b63068ad2 * dir_push might not flush pending switch changes but has to read the pending
record if needed

git-svn-id: trunk@47660 -
2020-12-01 21:39:38 +00:00
pierre
af17e9460b Apply patch proposed by J. Gareth Moreton in:
bug report #0036882: [Feature] Class and record definition XML dump extension

  These patches extend the node dump feature (enabled with DEBUG_NODE_XML)
  so it also dumps class and record definitions to the XML file. They are contained within <definition> tags.
  Currently only fields and constants are dumped to the XML file. Methods, constant and variable definitions may be added later.

git-svn-id: trunk@47658 -
2020-12-01 11:45:14 +00:00
pierre
9901a11d22 Add internalerror when V_Error level is used in Test_double_checksum code, only with TEST_CRC_ERROR macro set
git-svn-id: trunk@47657 -
2020-12-01 10:41:16 +00:00
florian
7f07c9f94d + range check enumeration array indicies, range checking is after all a safety mean
git-svn-id: trunk@47652 -
2020-11-30 22:08:04 +00:00
florian
792b629aa6 + -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
+ implemented support for x86-64
  * more than 2 GB static data requires to use the --no-relax option on linux

git-svn-id: trunk@47651 -
2020-11-30 22:07:34 +00:00
florian
c890a126fe * allow an AT&T suffix for movabs
git-svn-id: trunk@47650 -
2020-11-30 22:07:33 +00:00
svenbarth
3597696e98 * fix for Mantis #38145: allow overloading of assignment operators that return ShortStrings with a specific size
+ added tests

The following rules for using these operator overloads as *implicit* overloads apply (Delphi compatible):
  - if a found assignment operator returns a default ShortString then that is used
  - if only one assignment operator to a String[x] is found then that is used
  - otherwise the assignment is not possible
The explicit assignment checks for an exact match (and falls back for an implicit assignment). This is not entirely Delphi compatible as Delphi seems to favor the first found symbol in that case, but sometimes also not... :/

git-svn-id: trunk@47634 -
2020-11-29 15:47:52 +00:00
florian
c47d6d7af0 * check if an invisible parameter for the result occupies parameter space
git-svn-id: trunk@47632 -
2020-11-29 13:38:33 +00:00
florian
fbb2e63fea + #QLvember work: stack frame optimization for m68k
git-svn-id: trunk@47629 -
2020-11-29 10:16:00 +00:00
florian
8192bf1b33 * version update
git-svn-id: trunk@47628 -
2020-11-29 09:40:54 +00:00
pierre
8e13adad4c * Improve Test_Double_checksum with Test_Double_checksum_write CRC testing code.
Pass the three checksum arrays from ppufile to module owner,
    to be able to check that the checksums computed at the time pf ppu writing
    are compatible with the ones computed at interface level.

git-svn-id: trunk@47626 -
2020-11-28 18:32:46 +00:00
svenbarth
82957ec5a3 * Fix for Mantis #38122: when a deref node is passed as a Self parameter for a type helper (which is a var parameter) we need to pass the non-derefentiated value so that the data it points to can be modified by the helper's method (this is Delphi compatible)
+ added tests

git-svn-id: trunk@47625 -
2020-11-28 18:32:24 +00:00
florian
5ca2356638 * take care of po_noreturn in more cases
git-svn-id: trunk@47623 -
2020-11-28 16:02:51 +00:00
florian
ff87df7581 + factor out PostProcessELFExecutable
+ write executable section size on linux

git-svn-id: trunk@47622 -
2020-11-28 16:02:50 +00:00
florian
99d88b91a9 * do not include fpcdefs in the cepiktimer unit
git-svn-id: trunk@47621 -
2020-11-28 16:02:49 +00:00
pierre
f8c84dd1fd Fix compilation with DEBUG_PPU macro set
git-svn-id: trunk@47615 -
2020-11-28 12:06:36 +00:00
florian
eb098a3d11 * do not reuse a loaded reference for avrtiny in a_op_const*, resolves #38142
git-svn-id: trunk@47612 -
2020-11-27 21:16:31 +00:00
svenbarth
903486642e * allow an integer expression for SetPeFlags and SetPeOptFlags (Delphi compatible)
* adjusted test to check that as well

git-svn-id: trunk@47602 -
2020-11-26 20:13:40 +00:00
svenbarth
a8d316d187 + add method to retrieve an integer expression from the scanner
git-svn-id: trunk@47601 -
2020-11-26 20:13:34 +00:00
pierre
48271b880c Add {$i fpcdefs.inc} to units that do not have that include
git-svn-id: trunk@47599 -
2020-11-26 10:34:02 +00:00
pierre
9c1c2acd64 Improve CRC_checksum testing code with -dDEBUG_UNIT_CRC_CHANGES -dTest_Double_checksum -dTest_Double_checksum_write
git-svn-id: trunk@47597 -
2020-11-25 23:40:02 +00:00
pierre
787899b921 Allow easier disabling of $inline on, by using -dDISABLE_INLINE
git-svn-id: trunk@47593 -
2020-11-25 22:40:04 +00:00
florian
bb80851d65 * .def must be set on linux else it might be that the created executable is
deleted after compilation

git-svn-id: trunk@47592 -
2020-11-25 22:34:17 +00:00
florian
5cd4e5a016 * pass lp64d to GNU AS for abi_riscv_hf to get the right ABI set
git-svn-id: trunk@47585 -
2020-11-25 20:20:08 +00:00
Jonas Maebe
c3e2285c45 * when getting an llvm temporary recorddef, recurse into arrays rather than
treating them as opaque defs. This is required to ensure that the temporary
    recorddef for all x86-64 function results are the same on the caller and
    callee side, as we allocate new arrays when generating them

git-svn-id: trunk@47584 -
2020-11-25 18:44:44 +00:00
pierre
64866179a9 Add missing llvm directory for ppu unit compilation
git-svn-id: trunk@47578 -
2020-11-25 09:03:11 +00:00
Károly Balogh
d8997405c5 sinclairql: mark the qhdr metadata format as default in the help text
git-svn-id: trunk@47572 -
2020-11-25 04:57:33 +00:00
Károly Balogh
6a88f2fc28 sinclairql: drop support for the BASIC loader, write Q-emuLator or XTcc compatible metadata to the executable instead. based on a patch by Marcel Kilgus in qlforum.co.uk
git-svn-id: trunk@47569 -
2020-11-25 04:39:42 +00:00
Károly Balogh
45fc515400 sinclairql: added platform specific options to allow specifying executable metadata format
git-svn-id: trunk@47567 -
2020-11-25 01:48:36 +00:00
Tomas Hajny
74eb7b5050 + added coloured compiler output support for OS/2 and DOS targets, platform-specific parts refactored to a standalone unit to remove the heap of ifdefs in unit comphook
git-svn-id: trunk@47566 -
2020-11-24 23:09:01 +00:00
florian
6ac2957187 * Xtensa: cleanup of getreferencestring
git-svn-id: trunk@47565 -
2020-11-24 22:04:28 +00:00
florian
4a05053650 + Xtensa: make use of the LSX/SSX instructions
git-svn-id: trunk@47564 -
2020-11-24 21:22:20 +00:00
florian
9dcf85a8ef + Xtensa: FMA support
git-svn-id: trunk@47563 -
2020-11-24 20:59:47 +00:00
Károly Balogh
ab2db33b4c * backported vlink map file generation to other targets using vlink: Amiga, Atari and ZXSpectrum
git-svn-id: trunk@47560 -
2020-11-24 19:07:15 +00:00
Károly Balogh
ffa1b24f7e sinclairql: map file generation support with vlink, inspired by a patch posted by Marcel Kilgus in qlforum.co.uk
git-svn-id: trunk@47559 -
2020-11-24 18:34:09 +00:00
pierre
96f2e683e7 Also accept s80bit real constants when FPC_SOFT_FPUX80 macro is defined
git-svn-id: trunk@47557 -
2020-11-24 15:31:26 +00:00
Károly Balogh
9cf99b818d sinclairql: use .exe as extension for executables instead of .bin, patch by Marcel Kilgus at qlforum.co.uk
git-svn-id: trunk@47556 -
2020-11-24 15:18:05 +00:00
Károly Balogh
6b1c5861af * remove obsolete comment from rautils/ConcatConstant, issue reported/initial patch by Marcel Kilgus in QLForum.co.uk
git-svn-id: trunk@47549 -
2020-11-24 05:47:09 +00:00
Károly Balogh
7444733f5d m68k: fix DB/DW/DD handling in inline assembler, update BuildConstant() method to current standards. issue reported/initial patch by Marcel Kilgus in QLForum.co.uk
git-svn-id: trunk@47548 -
2020-11-24 05:42:38 +00:00
florian
4c0dac4864 + Aarch64: implemented FMovFMov2FMov, not yet used
git-svn-id: trunk@47534 -
2020-11-22 21:20:51 +00:00
florian
ef1ba48cc4 + Aarch64: call OptPass1FData for FMA instructions as well
git-svn-id: trunk@47533 -
2020-11-22 21:19:51 +00:00
florian
1014e53081 * patch by J. Gareth Moreton: fixes crash on ARM with -CriotR, resolves #38116
git-svn-id: trunk@47531 -
2020-11-22 19:47:34 +00:00
florian
7ad8f94ec4 * set reasonable defaults for arm eabi
git-svn-id: trunk@47530 -
2020-11-22 19:47:12 +00:00
florian
76406dbc36 + implement prefetch intrinsic for aarch64
git-svn-id: trunk@47526 -
2020-11-22 10:27:06 +00:00
florian
9c7cb3dbd7 * fix spilling of avx(512) registers
* get_scalar_mm_op fixed for M256

git-svn-id: trunk@47524 -
2020-11-21 22:30:34 +00:00
florian
1d474f822e * fits_in_mm_register takes care of avx(512) support
git-svn-id: trunk@47523 -
2020-11-21 22:30:33 +00:00
florian
d5dcf5cd7a * cleanup
git-svn-id: trunk@47522 -
2020-11-21 21:58:30 +00:00
florian
ea11517d27 + optimization type converted (modulo) divisions as well by removing up/down converting but,
insert a test and separate code path for -1 if needed

git-svn-id: trunk@47521 -
2020-11-21 21:58:28 +00:00