Commit Graph

60865 Commits

Author SHA1 Message Date
Mattias Gaertner
1f4868caa8 fcl-passrc: fixed parsing a(b).c<d>()
git-svn-id: trunk@47879 -
2020-12-29 00:26:00 +00:00
Mattias Gaertner
1d1dce1f60 fcl-passrc: fixed resolve string lit on non utf-8 system
git-svn-id: trunk@47872 -
2020-12-28 18:19:35 +00:00
Jonas Maebe
ea55c5f7e3 - disable the i386 assembly code for Linux/i386 as it doesn't work with a
fixed stack (uses hardcoded stack offsets) (mantis #38260)

git-svn-id: trunk@47871 -
2020-12-28 16:58:58 +00:00
Mattias Gaertner
1cc31e73da fcl-passrc: fixed typecast specialized array to specialized type
git-svn-id: trunk@47870 -
2020-12-28 16:51:02 +00:00
florian
93be88b270 * reverted r47862
git-svn-id: trunk@47869 -
2020-12-28 16:18:55 +00:00
michael
f1db695809 * Move chm writer to separate unit
git-svn-id: trunk@47868 -
2020-12-28 13:55:22 +00:00
marco
185f20b9ec * fix comment typo mentioned by Bart
git-svn-id: trunk@47866 -
2020-12-28 10:46:35 +00:00
florian
6169bbeed5 + $codealign directive accepts setting maxcrecord
git-svn-id: trunk@47862 -
2020-12-27 21:54:01 +00:00
Mattias Gaertner
968ea5c38b fcl-passrc: check class intf impl proc type modifiers match
git-svn-id: trunk@47861 -
2020-12-27 20:51:52 +00:00
Jonas Maebe
6d03f2807a * made exit codes unique
git-svn-id: trunk@47860 -
2020-12-27 13:19:05 +00:00
Jonas Maebe
b359080f42 * fixed round(currency) so it takes the rounding mode into account on
platforms where currency is "type int64"
  * inline trunc(currency), trunc(comp) and round(comp) on platforms where
    currency and comp are "type int64"

git-svn-id: trunk@47859 -
2020-12-27 13:19:02 +00:00
Jonas Maebe
514db355b1 * darwin/AArch64: always clear fpu exception flags regardless of the
triggered signal, as the kernel currently triggers SIGILL rather
    than SIGFPE for FPU exceptions

git-svn-id: trunk@47858 -
2020-12-27 13:18:59 +00:00
Jonas Maebe
8ba4c4bcf0 * factored out the creation of loadnodes for special variables/parameters
git-svn-id: trunk@47857 -
2020-12-27 13:18:56 +00:00
Jonas Maebe
5e3e4437c4 * use new TSym.EscapedRealName property when creating new symbols with the
same name as existing symbols

git-svn-id: trunk@47856 -
2020-12-27 13:18:53 +00:00
Jonas Maebe
5d51a788f7 - revert r47208
* properly fix the internalerror it hid: only replace the local symbols
    migrated to the parentfpstruct right before generating debug information,
    so that internally generated self/result loads during optimisation passes
    don't get confused by the replacement absolutevarsyms (those are normally
    never encountered during optimisation, as regular absolutevarsyms are
    replaced during parsing)

git-svn-id: trunk@47855 -
2020-12-27 13:18:50 +00:00
Jonas Maebe
3e047d3691 * generate more efficient code for trunc(currency), trunc(comp), and
round(comp) on platforms where currency and comp are handled using the FPU
   o also fixes trunc(comp) and trunc(currency) compilation for x86 on LLVM
     with -Oofastmath
 * add missing removal of excess fpu precision typecasts for trunc/round

git-svn-id: trunk@47854 -
2020-12-27 13:18:47 +00:00
Jonas Maebe
c0c0acbcb9 * fixed llvm shadow symtable construction in case fields are reordered
(-Ooorderfields) and hence their offsets are no longer monotonically rising
  * also fixed padding for variant bitpacked records in llvm shadow symtable

git-svn-id: trunk@47853 -
2020-12-27 13:18:44 +00:00
florian
98d3473a1a * i386: disable InterlockedCompareExchange128 implementation if PIC is enabled
git-svn-id: trunk@47852 -
2020-12-26 21:11:12 +00:00
florian
33afecd117 + support got modifier on labels
git-svn-id: trunk@47851 -
2020-12-26 18:51:45 +00:00
pierre
8b34e11da3 Add code to test Linux version, try statx syscall only if version is >= to 4.11
git-svn-id: trunk@47850 -
2020-12-26 17:08:56 +00:00
Károly Balogh
6190258f5d m68k: new CPU capability - the LINK instruction supports LONG displacements (68020+)
git-svn-id: trunk@47849 -
2020-12-26 00:21:31 +00:00
florian
053c42da33 + Xtensa: support large stack frames for the call0 abi
git-svn-id: trunk@47848 -
2020-12-25 18:18:09 +00:00
Károly Balogh
16a21eea87 m68k: the LEA+MOVEM to MOVEM optimization is not feasible on a ColdFire
git-svn-id: trunk@47847 -
2020-12-25 09:07:21 +00:00
florian
0fd7a5cb1f * lines with 255 chars a little bit long, reformated them
git-svn-id: trunk@47845 -
2020-12-24 13:13:42 +00:00
pierre
26170815b4 Fix compilation of i8086 compiler after commit #47840
git-svn-id: trunk@47844 -
2020-12-24 11:26:01 +00:00
florian
6db164c993 * min/max optimization needs to check both operands of the if condition, even if no else-statement is passed, resolves #38249
git-svn-id: trunk@47843 -
2020-12-23 22:41:37 +00:00
florian
b03eefd5d0 * Ch_ information for vreduce* fixed
git-svn-id: trunk@47842 -
2020-12-23 17:58:07 +00:00
florian
3a668d9b7c * i386 compilation fixed
git-svn-id: trunk@47841 -
2020-12-23 17:55:22 +00:00
florian
b713c7380b * implemented UseAVX512 properly
+ make use of VREDUCE* for frac(...) if AVX512QD is a available

git-svn-id: trunk@47840 -
2020-12-23 17:25:09 +00:00
florian
b28aa5c684 * properly handle result size for avx/sse based frac function, resolves #38248
git-svn-id: trunk@47839 -
2020-12-23 16:10:08 +00:00
pierre
2bcd2a4a93 Appply fix from Gareth Moreton in bug report 38247
git-svn-id: trunk@47838 -
2020-12-23 10:19:44 +00:00
Mattias Gaertner
ed3741f06e fcl-passrc: typecast generic template type to generic template type
git-svn-id: trunk@47836 -
2020-12-23 01:07:00 +00:00
Károly Balogh
01691e9ecb * fix the m68k cross-builds by disabling part of r47824
git-svn-id: trunk@47835 -
2020-12-22 23:14:25 +00:00
svenbarth
cc92af8423 * apply patch by Blaise.ru to enable the correct generation of names for classes/interfaces inside local symtables; these will be required for reference function types which are in fact interfaces and classes, this does not mean that ordinary classes can be declared inside functions
Note: no test as the functionality is not yet used

git-svn-id: trunk@47834 -
2020-12-22 22:22:35 +00:00
florian
4f05523db9 + RTMSupport function
+ if available use RTM to support InterlockedCompareExchange128 on i386

git-svn-id: trunk@47833 -
2020-12-22 22:00:08 +00:00
florian
da468719df * patch by Christo Crause to take care of the fact that the esp8266 read function is non-blocking, resolves #38243
git-svn-id: trunk@47832 -
2020-12-21 21:43:06 +00:00
Mattias Gaertner
f0961c17c8 pastojs: fixed UTF-16 chars
git-svn-id: trunk@47831 -
2020-12-21 15:52:23 +00:00
Mattias Gaertner
fe4fda2a35 fcl-passrc: resolver: split source and target codepage
git-svn-id: trunk@47830 -
2020-12-21 15:50:50 +00:00
Mattias Gaertner
049af48bd8 fcl-js: writer: fixed writing invalid UTF-16
git-svn-id: trunk@47829 -
2020-12-21 15:48:48 +00:00
svenbarth
cbe352808a * fix for Mantis #38238: when creating a copy of a procdef for a procvar set the methodpointer flag also for methods of records
+ added test

git-svn-id: trunk@47826 -
2020-12-20 22:41:27 +00:00
florian
2a990b8167 + patch by J. Gareth Moreton: some new x86 assembler optimizations, resolves #38130
git-svn-id: trunk@47824 -
2020-12-20 18:05:43 +00:00
marco
5cffbad92a - fix \ in filenames:
* copy long_string to long_stringfn and long_string.
 * turn off interpretive I/O (escapes) for long_stringfn
 * use long_stringfn for filenames.

 * filenames also get unquoted production for Delphi compatibility using new non_whitespace_string.  Regex for that is a bit t.b.d, but this made it work with my examples

git-svn-id: trunk@47820 -
2020-12-19 21:47:25 +00:00
florian
b8fc193b0c * extended test
git-svn-id: trunk@47818 -
2020-12-19 12:58:35 +00:00
ondrej
3f605a5b50 win rtl: load GetTimeZoneInformationForYear dynamically. Issue #38192
git-svn-id: trunk@47817 -
2020-12-19 11:57:58 +00:00
Mattias Gaertner
3f7d3e17cd fcl-passrc: use fmShareDenyNone when writing pas
git-svn-id: trunk@47816 -
2020-12-19 11:46:53 +00:00
Mattias Gaertner
58421e40c6 pastojs: use fmShareDenyNone when writing js
git-svn-id: trunk@47815 -
2020-12-19 11:46:06 +00:00
Mattias Gaertner
c7d29ec118 pastojs: test #256+
git-svn-id: trunk@47814 -
2020-12-19 11:37:36 +00:00
florian
1d92cc43bb * fpc_ln_real raises an exception for invalid operands if they exception is not masked
git-svn-id: trunk@47813 -
2020-12-18 22:36:17 +00:00
florian
072be7b0f7 * Aarch64: fix 32 bit div operations with constant denominators, resolves #38225
git-svn-id: trunk@47812 -
2020-12-18 21:39:35 +00:00
svenbarth
2a897f5b6b * apply slightly adjusted patch by Blaise.ru which moves parsing of result types to a separate functions thus ensuring that File types can't be used for procedure variables (just like they already couldn't be used as a result type for normal functions)
+ added test

git-svn-id: trunk@47810 -
2020-12-18 13:50:39 +00:00