Commit Graph

66102 Commits

Author SHA1 Message Date
Pierre Muller
f3179cb718 Add system_powerpc_wii to supported_targets of powerpc generic GNU assembler 2022-10-22 15:34:38 -05:00
J. Gareth "Curious Kit" Moreton
626e23d89f * x86: The code generator will now attempt manipulate "x and (not y)" (where x and y are ordinals) to use ANDN. 2022-10-22 13:13:44 +00:00
J. Gareth "Curious Kit" Moreton
567244007e * x86: Improvement to bug fix so an optimisation can still be made even if the other register is in use 2022-10-22 13:07:16 +00:00
J. Gareth "Curious Kit" Moreton
41b8f6a42e * x86: Bug fix where improved AddMov2Mov optimisation didn't
check to see if the other register was modified in between
2022-10-22 13:07:16 +00:00
J. Gareth "Curious Kit" Moreton
fa76baa3d4 * New test to evaluate i39918 2022-10-22 13:07:16 +00:00
florian
8f269d4540 * check for proper exception type 2022-10-22 15:05:52 +02:00
florian
2b48afe151 * check if optinfo is assigned before using it, resolves #39913 2022-10-21 21:14:39 +02:00
florian
2c51abf40d + print optinfo pointer if set 2022-10-21 21:13:28 +02:00
Michaël Van Canneyt
0a2447a955 * Publish all available & needed properties 2022-10-21 13:36:10 +02:00
mattias
87a9214983 pastojs: FindDefaultConfig: search in symlinked compiler exe 2022-10-21 12:10:09 +01:00
Jonas Maebe
229d88c50f Thumb(2): fix compilation after FPU control word changes
Resolves #39966
2022-10-20 22:25:29 +02:00
Martin
dd0711a27e Fix incorrect dwarf entry count. Issue #39928 introduced in 1b6982107f 2022-10-20 20:03:23 +00:00
Michaël Van Canneyt
850685844b * Fix handling of options file 2022-10-19 22:57:11 +02:00
Michaël Van Canneyt
9e60c686b4 * Add crossoriginisolation and debugcapture 2022-10-19 22:57:11 +02:00
florian
e142953c6d * make the hidden high parameter for short strings a byte for 8 bit CPUs 2022-10-19 22:48:54 +02:00
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