Commit Graph

66087 Commits

Author SHA1 Message Date
ccrause
991460c4ee Rewrite fpc_shortstr_concat_multi for AVR to not use a temporary shortstring to reduce RAM usage. 2022-10-19 20:18:56 +00:00
Michael VAN CANNEYT
fb7787b11e * Added debugcapture route 2022-10-19 20:33:06 +02:00
mattias
2d94575fa8 fcl-css: added attribute value check 2022-10-19 16:44:33 +01:00
J. Gareth "Curious Kit" Moreton
45b1d592f5 * x86: Bug fix where "mov $0,%reg" was inserted on the wrong side of a SETcc instruction 2022-10-18 20:47:42 +00:00
J. Gareth "Curious Kit" Moreton
27aa4d4e34 * x86: ConvertJumpToRET now sets the condition to C_None 2022-10-18 20:47:42 +00:00
J. Gareth "Curious Kit" Moreton
6b77017cb9 * x86: Added two new tests for i39922 2022-10-18 20:47:42 +00:00
Jonas Maebe
c89848a00f powerpc64le: fix reading FPU control word after 0758aa1143
Also, missing rest of the commit message for that change:

The default implementation of SysResetFPU now sets the FPU control word that
was last set from any thread (Delphi and FPC i386/x86-64-compatible). No longer
call SysInitFPU when starting a new thread, only SysResetFPU. Combined, this
means that new FPC-started threads will always start out with that control
word on all architectures.

Added generic fpc_cpuinit implementation that is used unless
FPC_SYSTEM_HAS_FPC_CPUINIT has been defined.

Ensure that the softfloat exception mask is initially set to the same
value as the hardware fpu exception mask on architectures that use both.

SafeLoadLibrary now saves/restores the FPU control word on all platforms.

Removed outdated fpc_mtfsb0_corrected define check in powerpc64.inc

Resolves #38230
2022-10-18 21:55:53 +02:00
Jonas Maebe
0758aa1143 FPU exception mask: generlised system unit interface 2022-10-17 19:43:01 +00:00
florian
e457cdad8a * patch by avk959 to solve infinite loop in FindMatchesBoyerMoore*, resolves #39885 and #39709
+ tests
2022-10-17 21:14:32 +02:00
florian
5670a7543c * properly reset nf_write/nf_modify flags for min/max inline nodes, needed by dead store optimization, resolves #39958
* factored out nutils.node_reset_pass1_write
2022-10-16 22:51:50 +02:00
Jeppe
c83e6c34a9 riscv32: Fix 64bit comparisons
- Code taken from MIPS backend
- Removed some unused code generated for RV32 64bit integer ops
2022-10-16 17:37:53 +02:00
mattias
73e5d6f70f fcl-css: renamed TCSSNode to ICSSNode, resolver: list of style elements 2022-10-16 13:51:45 +02:00
florian
65ff03f30a + test for #39955 2022-10-15 13:59:35 +02:00
florian
1c86a4bbeb * if a pointer_to_array type conversion is applied to a variable, it is not written, resolves #39957 2022-10-14 23:12:18 +02:00
mattias
27315ac528 fcl-css: shorten PseudoAttribute to Pseudo 2022-10-14 18:48:07 +02:00
florian
e2a26ecece * fixes tcg64frv.a_op64_const_reg_reg based on the analysis of Bart B, resolves #39953 2022-10-13 23:16:19 +02:00
Michaël Van Canneyt
0b3c608d79 * Faster DupeString by Rika. Fixes issue #39949 2022-10-13 13:00:57 +02:00
Michaël Van Canneyt
d5777174d8 * Optimization of TStringHelper.Split by Rika. Fixes issue #39948 2022-10-13 12:45:30 +02:00
mattias
eb17e6fd2d fcl-web: fixed crash in websocket server on windows when closing when already disconnected 2022-10-13 00:56:07 +02:00
Jonas Maebe
b150480c60 Darwin: don't try to print size statistics if the binary wasn't linked 2022-10-12 22:58:19 +02:00
Jonas Maebe
a835d8b533 rgobj: reduce compilation time of programs with long movelists
Reduces compilation time of webtbs/tw2242 for AArch64 with -O2 from
15 minutes to 10 seconds on my system.

from 15 minutes to 10 seconds
2022-10-12 22:58:18 +02:00
Jonas Maebe
e2ade64a1e cgbase: make first parameter of supregset_reset "out" 2022-10-12 22:58:18 +02:00
Pierre Muller
d217a459aa Fix bug report #39952.
* compiler/aggas.pas: Avoid use of .long for 64bit constant
    for targets that automatically insert alignments.
  + tests/webtbs/tw39952.pp: New test from bug report 39952.
2022-10-12 21:28:16 +01:00
florian
f0c0d8a033 + test for #22809 which is meanwhile resolved 2022-10-12 21:56:30 +02:00
florian
989895c82f * patch by Bart B: FormatFloat correctly outputs NaN now, resolves #32868
+ test
2022-10-11 22:11:33 +02:00
Sven/Sarah Barth
bb51ac77dd * the right side of a concatenation of multiple ShortString values can directly pass any String[x] to the utility routine, because only the Length() is used, not High() and nothing is modified (also typed pointers must not be used for them); this allows for better code generation for strings with a maximum length < 255 2022-10-11 07:40:13 +02:00
mattias
3e181d7640 pastojs: fixed clone array of tobject, pas2js issue 39238 2022-10-11 00:41:24 +02:00
florian
1b6982107f * TDebugInfoDwarf3.appenddef_object should not write an extra finish_entry for objects and C++ classes 2022-10-10 22:46:25 +02:00
florian
3e5f6d3228 * use AllocRegbetween in TARMAsmOptimizer.RemoveSuperfluousMove, resolves #39921 2022-10-09 21:32:22 +02:00
Sven/Sarah Barth
02aac653d2 * optimize shortstring concatenations if they're on the right side of an assignment to directly use the left side instead of a temporary 2022-10-09 13:56:52 +02:00
Sven/Sarah Barth
32261a0f6d * fix copy/paste typo in comments 2022-10-09 13:56:52 +02:00
Michaël Van Canneyt
f2580efc15 * Fix memleak in case of error. 2022-10-09 12:42:57 +02:00
Jonas Maebe
d12bf094ab cs_opt_consts: disable when non-local gotos are active
This optimisation can insert code after the call to fpc_setjmp, resulting in
it not getting executed after a longjmp. Fixes tmacnonlocalgoto on AArch64
with -O2 or higher.
2022-10-08 22:27:23 +02:00
florian
5b73fc4d0e * marked parameters in ucomplex with const 2022-10-08 20:49:33 +02:00
Sven/Sarah Barth
188cac3bc6 * enable OpenStrings by default in mode Delphi
+ added test
2022-10-08 13:52:34 +02:00
Sven/Sarah Barth
920e1c8d19 * change PPU version as the change regarding $P/$OpenStrings affects the token buffers of generics (which contains the current settings) 2022-10-08 13:52:33 +02:00
Sven/Sarah Barth
6cbbf9c52a * $P/$OpenStrings is supposed to be a local switch, so change that accordingly
+ added tests
2022-10-08 13:52:32 +02:00
florian
b934517871 * patch by Rika: Optimize some compiler/CFileUtl.pas functions for returning unchanged strings, resolves #39882 2022-10-07 22:32:59 +02:00
florian
9f293df425 * export DynArrayAssign, resolves #39897 2022-10-06 22:56:38 +02:00
florian
ad7cc0e69d * handle <dyn.array>+[] (and swapped) correctly, resolves #39919 2022-10-05 22:48:21 +02:00
marcoonthegit
2291100bbd * fix and test for bug #39884 solving daysbetween when zero date is crossed. 2022-10-05 20:46:18 +02:00
mattias
569f83e33d fcl-web: TWSServerConnection.HandshakeResponseSent propagates result 2022-10-05 10:49:31 +02:00
florian
d8cd4d283d * removed wrong program name 2022-10-04 22:02:59 +02:00
mattias
01c982ad70 fcl-passrc: omit hint for not used anonymous type 2022-10-04 20:55:49 +02:00
mattias
a2182cb7a5 fcl-passrc: omit hint for not used anonymous type 2022-10-04 20:42:02 +02:00
Michaël Van Canneyt
eb8c322a53 * Use aValue instead of Value. Fix issue #39938 2022-10-04 17:53:17 +02:00
Michaël Van Canneyt
e736011c37 * Fix from Bart for issue #39938 2022-10-04 11:14:05 +02:00
florian
f8848dd185 * fix for commit a91e5478, mixed localalignmax and constalignmax 2022-10-03 22:03:55 +02:00
florian
a91e547832 * set the maximum alignment values for constants and variables to 64 on aarch64-linux 2022-10-03 14:40:57 +02:00
florian
2396b36c21 * nil =/<> dyn. array is a valid expression, so isbinaryoperatoroverloadable needs to take care of it, resolves #39933 2022-10-03 10:26:09 +02:00